Skip to content

Latest commit

 

History

History
108 lines (80 loc) · 3.07 KB

README.md

File metadata and controls

108 lines (80 loc) · 3.07 KB

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

中文自述

composer

composer require kingbes/webui
require
PHP 8.1+
FFI *
Windows-x64 true
Linux-x64 true
Linux-arm To be tested
Linux-arm64 To be tested
MacOs-x64 To be tested
MacOs-arm64 To 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