php基於webview開發win桌面,js和php直接交互
碼雲
php-webview
目錄結構
.
├── library\ 庫目錄(製作PHP可調用拓展)
|
├── os\ 系統拓展目錄
|
├── php\ php環境目錄
|
├── src\ 應用目錄
| └── index.php 入口文件(文件名別修改)
|
├── favicon.ico 文件圖標
|
└── windows.bat windows運行文件
更新
進入src目錄
windows用户
運行命令 ..\php\php.exe ..\php\composer.phar update 更新
自己php環境 php composer update 更新
運行
進入根目錄
windows用户
雙擊 windows.bat 或者運行命令 .\php\php.exe src/index.php 啓動
自己php環境 php src/index.php 啓動 (必須開啓ffi拓展和phar拓展)
打包
進入根目錄
運行命令 .\php\php.exe build.php 或者自己php環境運行 php build.php
編譯後僅僅7M打底(由於之前壓縮過會報毒,現已改為打底25M)
效果
文件圖標
提示 文件圖標必須在啓動目錄下,不然不顯示
構建
有關先決條件,請閲讀 The link
要構建庫,請運行 library/build.sh 在unix系統上, library/build.bat 在 Windows
教程
配置
use KingBes\PhpWebview\WebView;
use KingBes\PhpWebview\WindowSizeHint;
/**
* @param string $title 窗口標題
* @param int $width 窗口寬度
* @param int $height 窗口高度
* @param WindowSizeHint $hint 大小提示 0,1,2,3
* @param bool $debug debug模式 默認:false
* __DIR__ 入口位置
*/
$webview = new WebView('Php WebView', 640, 480, WindowSizeHint::HINT_NONE, true, __DIR__);
獲取與設置
// 獲取ffi 返回:FFI
$webview->getFFI();
// 獲取webview 返回:mixed
$webview->getWebview();
// 獲取窗口標題 返回:string
$webview->getTitle();
// 設置窗口標題 參數:title=string
$webview->setTitle(title:"新的標題");
// 獲取窗口寬度 返回:int
$webview->getWidth();
// 設置窗口寬度 參數:width=int
$webview->setWidth(width:100);
// 獲取窗口高度 返回:int
$webview->getHeight();
// 設置窗口高度 參數:height=int
$webview->setHeight(height:100);
// 獲取窗口大小提示 返回:int
$webview->getHint();
// 設置窗口大小提示 參數:hint=WindowSizeHint::HINT_MIN
$webview->setHint(hint:WindowSizeHint::HINT_MIN);
// 判斷是否debug 返回:bool
$webview->isDebug();
// 設置html內容 參數:html=string
$webview->setHTML(html:"<a>html的內容</a>");
// 綁定交互的操作 參數:name=string ,閉包函數:$req 是接收到的參數,$seq 是觸發次數
$webview->bind(name:"bindName",function($seq, $req, $context){
return ["返回內容","返回數組"];
});
// 解除綁定 參數:name=你綁定過的name名
$webview->unbind(name:"bindName");
// 設置窗口url內容 參數:url=string
$webview->navigate(url:"http://www.baidu.com");
// 運行
$webview->run();
// 銷燬
$webview->destroy();