根據需求,我們要拿到h5的錯誤資訊,并將error資訊進行上報,查詢了下Android WebView的API發現了WebChromeClient這個方法可以滿足要求:
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
//獲取log的級別
switch (consoleMessage.messageLevel()){
case ERROR://將error資訊上報到服務端
LogUtil.logE("webview==",consoleMessage.message()+" level="+ consoleMessage.messageLevel());
LogUtil.uploadH5Error(consoleMessage.message());
break;
}
return super.onConsoleMessage(consoleMessage);
}
這個方法的作用就是* Report a JavaScript console message to the host application.,就是說這個方法可以攔截JavaScript的console資訊,就跟在瀏覽器里查看一樣;對于Android來說,在Android studio 的logcat里面就就可以查看,比如我讓h5隨便弄個undefined錯誤,然后重寫了js的log方法logcat輸出如下:

從輸出資訊我們可以看到可以捕獲到行號,錯誤資訊,錯誤的URL,這些資訊都在ConsoleMessage物件里, 其代碼如下:

可以看出ConsoleMessage里面也有log級別,我們只需要將error級別的日志上報即可,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/232601.html
標籤:其他
