使用任何web浏览器或WebView作为GUI,后端使用您喜欢的语言,前端使用现代web技术,所有这些都在一个轻量级的便携式库中。
[!提示]
WebView在win32可能不能用哦
composer require kingbes/webui
要求 | 状态 |
---|---|
PHP | 8.1+ |
FFI | * |
Windows | true |
Linux | 待测试 |
MacOs | 待测试 |
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- 必须加入webui.js,否则无法交互 -->
<script src="webui.js"></script>
</head>
<body>
<button onclick="btn()">asd</button>
<script>
function btn() {
hello('hello').then(function (res) {
console.log(res)
})
}
</script>
</body>
</html>
index.php
require "./vendor/autoload.php";
use Kingbes\Webui;
use Kingbes\JavaScript;
// 实例
$Webui = new Webui;
// html字符串
$html = file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . "index.html");
// 创建一个窗口
$window = $Webui->newWindow();
// 绑定js函数
$bind = $Webui->bind($window, "hello", function ($event, JavaScript $js) {
// 获取第一个参数为字符串
$arg_one = $js->getString($event);
var_dump($arg_one);
// 返回字符串
$js->returnString($event, "nihao");
});
// 显示窗口
$Webui->show($window, $html);
// 等待
$Webui->wait();
// 释放所有
$Webui->clean();
Webui
窗口的方法类JavaScript
用于与js绑定交互用Wrapper
包装器,对整个交互进行包装等Cobj
C的对象类,部分功能可能需要
nice
好东西
可以设置默认WebView作为UI吗?
文档中有相关函数调用php-webui,但我之前测试过失败了