1 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
這個(gè) JavaScript 錯(cuò)誤處理的答案顯示了如何在純 JavaScript 中執(zhí)行此操作,但我需要知道如何以及何時(shí)將這樣的代碼注入 WebView,或者是否有更好的方法來執(zhí)行此操作。
您可以嘗試使用InvokeScriptAsync和 JavaScripteval函數(shù)在導(dǎo)航完成時(shí)將內(nèi)容注入網(wǎng)頁。
然后,如果您想在您的應(yīng)用程序中獲取錯(cuò)誤消息,您可以使用 window.external.notify字符串參數(shù)將信息發(fā)送回您的應(yīng)用程序。要接收這些消息,請?zhí)幚鞸criptNotify事件。
我做了一個(gè)簡單的代碼示例供您參考:
<!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 關(guān)注
- 264 瀏覽
添加回答
舉報(bào)