【发布时间】:2017-09-14 17:23:57
【问题描述】:
由于文件写入安全问题,我们尝试将我们的应用从使用 ms-appx-web: 切换到使用 ms-appdata:。但是它立即失败了,因为我们依赖 window.external.notify() ,它与 ms-appx-web: 一起工作得很好:但似乎与 ms-appdata: 一起表现为无操作。作为测试,我们将以下 html 加载到 WebView 对象中:
<html>
<head>
<script>
function demofunc( str ) {
document.getElementById("demo").innerHTML += str;
window.external.notify( str );
}
</script>
</head>
<body onLoad="demofunc('demofunc()');">
demo <body>
<div id="demo"></div>
</body>
</html>
它应该会产生这个结果:
demo <body>
demofunc()
但是,不会产生任何类型的弹出消息。为什么?显然,正在调用 demofunc() 方法以在演示 div 中添加第二行输出,但 window.external.notify() 没有产生弹出消息。是否有关于 notify() 和 ms-appdata: 的特殊规则?
更新 - 问题 Can't run javascript alerts in universal app's webview at payment gateway 类似,适用于 ms-appx-web: 但不适用于 ms-appdata:。该问题捕获 ScriptNotify() 然后使用 Windows.UI.Popups.MessageDialog 弹出一个对话框。使用 ms-appx-web:调用 ScriptNotify(),但使用 ms-appdata:不调用 ScriptNotify()。那是我们的问题,没有弹出窗口发生。
【问题讨论】:
-
也许这会有所帮助? social.msdn.microsoft.com/Forums/en-US/…
-
谢谢你的链接,很有趣。它似乎解决了捕获 notify() 事件并运行另一个方法,这确实非常有用。但我们也确实需要为用户弹出一个对话框消息。缺少弹出对话框实际上是这篇文章的最重要原因。
标签: javascript windows uwp notify appdata