php开发桌面应用

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();
本作品采用《CC 协议》,转载必须注明作者和本文链接
放弃总是很容易,但坚持是痛苦的!
本帖由系统于 1个月前 自动加精
讨论数量: 13

咋说呢,PHP 搞这个感觉就是个玩具。

2个月前 评论
Kingbes (楼主) 2个月前
yangweijie

gitee.com/kllxs_admin/php-egg-edit...

看了一眼你这个项目, js 直接调PHP 控制器方法, 完全没看出再哪里绑定的。

2个月前 评论
Kingbes (楼主) 2个月前
Kingbes (楼主) 2个月前
Kingbes (楼主) 2个月前
yangweijie (作者) 2个月前
Kingbes (楼主) 2个月前
yangweijie

能实现 浏览器的右下角通知么?或这系统级通知。 最小化 任务栏系统托盘。

1个月前 评论
Kingbes (楼主) 1个月前
yangweijie
1个月前 评论
Kingbes (楼主) 1个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!