#javascript #webview #deno
#javascript #webview #deno
Вопрос:
Я нашел этот действительно классный пример онлайн о том, как запустить WebView
с помощью Deno.
Возможно ли вызвать функцию внутри вашего приложения Deno из элемента HTML button, размещенного внутри шаблона html?
Взгляните:
// Importing the webview library
import { WebView } from "https://deno.land/x/webview/mod.ts";
// Creating an HTML page
let html = `
<html>
<body>
<h1>Hello from deno v${Deno.version.deno}</h1>
<button type="button" onclick="test()">RUN TEST FUNCTION</button>
</body>
</html>
`;
function test() {
console.log('You really can do that!');
}
// Creating and configuring the webview
const webview = new WebView({
title: "Deno Webview Example",
url: "data:text/html," html,
// url: 'https://www.google.com',
width: 768,
height: 1024,
resizable: true,
debug: true,
frameless: false
});
// Running the webview
webview.run();
Для запуска этого кода вам необходимо:
deno run -A --unstable webview.ts
Комментарии:
1. Похоже, что на эту дату 2-сторонние привязки deno еще не существуют.
2. Ну да, создав сервер https и прослушивая любой запрос, который хочет ваш
WebView
клиент. В противном случае я действительно понятия не имею, чего бы вы достигли, делая это.3. Вы получаете возможности веб-приложения на рабочем столе с помощью очень хорошего движка рендеринга, кодирующего на Javascript и HTML.
Ответ №1:
Использовать WebView.bind()
.
Заставить пример в этом вопросе работать может быть так просто, как ( test()
станет глобальной функцией, как ожидает обработчик щелчков):
@@ -27,5 27,8 @@ const webview = new WebView({
debug: true,
frameless: false
});
webview.bind('test', test);
// Running the webview
webview.run();