<?php
namespace Kingbes\PebView\process;
use Kingbes\PebView\Window;
class PebView
{
private function getNaviget(): string
{
$webman = config("process.webman.listen");
$webman = str_replace('0.0.0.0', '127.0.0.1', $webman);
return $webman;
}
public function onWorkerStart()
{
$status_file = runtime_path() . DIRECTORY_SEPARATOR . '/windows/status_file';
$naviget = $this->getNaviget();
while (1) {
if (@fopen($naviget, 'r')) {
break;
}
sleep(1);
}
$config = config("plugin.kingbes.pebview.pebview");
$win = new Window($config["debug"]);
if (trim($config["init"]) !== "") {
$win->init($config["init"]);
}
$win->setTitle($config["title"])
->setSize($config["size"][0], $config["size"][1], $config["size"][2])
->setIcon($config["icon"])
->setCloseCallback($config["closeCallback"])
->tray($config["tray"]["icon"])
->trayMenu($config["tray"]["menu"]);
foreach ($config["bind"] as $bind) {
$win->bind($bind["name"], $bind["cb"]);
}
$win->navigate($naviget)
->run()
->destroy();
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
file_put_contents($status_file, '0');
} else {
posix_kill(posix_getppid(), SIGINT);
}
}
}