1 回答
TA贡献1777条经验 获得超10个赞
这个 JavaScript 错误处理的答案显示了如何在纯 JavaScript 中执行此操作,但我需要知道如何以及何时将这样的代码注入 WebView,或者是否有更好的方法来执行此操作。
您可以尝试使用InvokeScriptAsync和 JavaScripteval函数在导航完成时将内容注入网页。
然后,如果您想在您的应用程序中获取错误消息,您可以使用 window.external.notify字符串参数将信息发送回您的应用程序。要接收这些消息,请处理ScriptNotify事件。
我做了一个简单的代码示例供您参考:
<!DOCTYPE html>
<!--this is my local web page HTMLPage1.html-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
function test() {
}
</script>
</head>
<body>
<input value="click" onclick="test1()" type="button"/>
</body>
</html>
<WebView x:Name="webview" NavigationCompleted="webview_NavigationCompleted" ScriptNotify="webview_ScriptNotify" Source="ms-appx-web:///HTMLPage1.html"></WebView>
private void webview_ScriptNotify(object sender, NotifyEventArgs e)
{
string msg = e.Value;
}
private async void webview_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
{
string functionString = "window.onerror = function(error, url, line) {window.external.notify( 'ERR:'+error+' url'+url+' Line: '+line);};";
var ret = await webview.InvokeScriptAsync("eval", new string[] { functionString });
}
- 1 回答
- 0 关注
- 241 浏览
添加回答
举报