fun*_*bro 2 webview windows-store-apps windows-8.1
我正在开发一个Windows应用商店HTML5/Javascript应用.作为我的应用程序的一部分,我需要在网页上调用Javascript方法并检索其返回值.
该控件x-ms-webview
有一个方法invokeScriptAsync
可以调用webview上的脚本.但是,无法从任何方法调用中检索值.
它似乎也不支持与主机应用程序通信的标准方法window.external.notify
.
如何从Windows应用商店应用webview中的网页检索值?
您可以从调用的脚本中获取返回值,但必须向invokeScriptAsync返回的对象添加一个不完整的处理程序.例如,采用HTML Webview控件示例的方案5 并修改5_InvokeScript.js中的代码,如下所示:
function invokeScript() {
var op = document.getElementById("webview").invokeScriptAsync("changeText", document.getElementById("textInput").value);
op.oncomplete = function (e) {
console.log(e.target.result);
};
op.start();
}
Run Code Online (Sandbox Code Playgroud)
然后在script_example.html中,将函数更改为:
function changeText(text) {
document.getElementById("myDiv").innerText = text;
return text;
}
Run Code Online (Sandbox Code Playgroud)
在应用程序中的console.log调用上设置断点,您将看到e.target.result包含返回值.
window.external.notify
也起作用,MSWebViewScriptNotify
从Webview 提升事件.请注意,MSWebViewScriptNotify
将仅从加载了ms-appx-web,ms-local-stream和https内容的Web视图引发,其中https还需要清单中的内容URI规则,否则该事件将被阻止.如果您涉及URI解析器,也允许使用ms-appdata.通过navigateToString加载的webview没有此要求.
归档时间: |
|
查看次数: |
4303 次 |
最近记录: |