4

我正在用 C# 和 XAML 编写一个 Windows 8 应用程序,它在 WebView 中托管一个网页。网页调用alert() 和confirm(),但WebView 抛出异常,说“'alert' 未定义”或“'confirm' 未定义”。可以启用警报()和确认(),还是我需要编写代码来模拟它们的正常功能?如果我需要自己写,我应该如何开始这样的工作?谢谢你。

4

3 回答 3

5

警报和确认在 WebView 中不起作用。您可以使用WebView.ScriptNotify从页面上的脚本接收事件,并使用该事件显示使用MessageDialog 类的对话框。

在您想要警报的脚本中...

window.external.notify('foo');

并在您的 C# 中使用 WebView.ScriptNotify 方法中的示例。

于 2012-08-08T16:16:41.573 回答
3

你需要做一些解决方法。我这样做了,它对我有用。

       window.alert = function(__msg){window.external.notify(' + __msg + ');};

在这里参考我的一个类似的 windows phone问题

于 2012-11-22T09:14:25.077 回答
2

您将需要编写代码来启用它们。请注意,在 HTML5 Win8 应用程序和 XAML 中都是如此。

对于可以访问 WinRT 的脚本,可以使用 Windows.UI.Popup.MessageDialog:

(new Windows.UI.Popup.MessageDialog("Hello!", "Welcome")).showAsync().done(dismissedHandler)

请注意,这些是异步的,不会阻止执行。

为了从用户那里获取信息——例如用户输入的文本,没有任何标准,您需要为此创建一组新的标记。

于 2012-08-08T16:15:55.430 回答