Webview:postmessage(msg, [isjson])method
Post a message to the current top level document rendered in the Webview.
To retrieve the message in the document, you must subscribe to the "message" event of the window.chrome.webview object from the top level document.
Parameters
msg
A valid string to be posted to the toplevel document of the Webview.
[isjson]
A boolean value indicating if the provided string is encoded as JSON, defaulting to false
Return value
This function returnstrue if the operation was successful or false otherwise.
Example
local html = [[
<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
window.chrome.webview.addEventListener('message', arg => {
if ("text" in arg.data)
document.getElementById("text").innerHTML = arg.data.text;
});
</script>
</head>
<body>
<center><h1 id="text" style="margin-top:30%"></h1></center>
</body>
</html>]]
import ui
require "webview"
-- create a simple Webview
local win = ui.Window("Webview:postmessage() sample", 640, 480)
local Webview = ui.Webview(win, 0, 50, 640, 430)
local button = ui.Button(win, "Post message to Webview")
button:center()
button.y = 10
-- once ready, load the html content from string
function Webview:onReady()
Webview:loadstring(html)
end
function button:onClick()
-- post a JSON message to the Webview
Webview:postmessage('{ "text" : "Hello from <font color=\\"#283593\\">Lua</font><font color=\\"#FF9800\\"><sup>rt</sup></font>" }', true)
end
-- update the user interface until the user closes the Window
await win:showasync()