我正在用C#和XAML编写一个Windows 8应用程序,该应用程序在WebView中承载网页。 网页调用 alert() 和 confirm(),但 WebView 会抛出异常,指出"'alert' is undefined"或"'confirm' is undefined"。 可以启用 alert() 和 confirm() 吗,还是我需要编写代码来模拟它们的正常功能? 如果我需要自己写它们,我应该如何开始这样的工作? 谢谢。
警报和确认在 Web 视图中不起作用。 可以使用 WebView.ScriptNotify 从页面上的脚本接收事件,并使用该事件通过 MessageDialog 类显示对话框。
在需要警报的脚本中...
window.external.notify('foo');
并在 C# 中使用 WebView.ScriptNotify 方法中的示例。
您需要执行一些解决方法。我这样做了,它对我有用。
window.alert = function(__msg){window.external.notify(' + __msg + ');};
在这里参考我的Windows Phone的类似问题
您需要编写代码来启用它们。请注意,在 HTML5 Win8 应用和 XAML 中都是如此。
对于可以访问 WinRT 的脚本,可以使用 Windows.UI.Popup.MessageDialog:
(new Windows.UI.Popup.MessageDialog("Hello!", "Welcome")).showAsync().done(dismissedHandler)
请注意,这些是异步的,而不是块执行。
为了从用户那里获取信息——例如,从用户那里输入的文本,没有什么标准,你需要为此创建一组新的标记。