Home

Awesome

<div align="center">

Logo

WebUI for PHP

Use any web browser or WebView as GUI, with your preferred language in the backend and modern web technologies in the frontend, all in a lightweight portable library.

Screenshot

</div>

中文自述

composer

composer require kingbes/webui
require
PHP8.1+
FFI*
Windows-x64true
Linux-x64true
Linux-armTo be tested
Linux-arm64To be tested
MacOs-x64To be tested
MacOs-arm64To be tested

example

  1. Example I

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>
    <!-- You must add webu.js; otherwise, the interaction cannot be performed -->
    <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 = file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . "index.html");
$window = $Webui->newWindow();
$bind = $Webui->bind($window, "hello", function ($event, JavaScript $js) {
    // Gets the first argument as a string
    $arg_one = $js->getString($event);
    var_dump($arg_one);

    // return string
    $js->returnString($event, "nihao");
});
$Webui->show($window, $html);
$Webui->wait();
$Webui->clean();

Various usage instructions

  1. Webui Webui class
  2. JavaScript Used to interact with js bindings
  3. Wrapper Wrappers that wrap the entire interaction, etc
  4. Cobj Wrappers, which wrap the entire interaction with other C object classes, some functions may be required

MORE

website