我遵循在我的应用程序的onCreate方法中定义Thread.setDefaultUncaughtExceptionHandler的方法。此应用程序也在清单中定义。处理程序也被创建,但是它的处理程序永远不会被调用,尽管我在LogCat中看到了一个JavaScript错误。
12-19 03:02:58.630: I/chromium(1569): [INFO:CONSOLE(45)] "Uncaught ReferenceError: $contactArea is not defined", source: file:///android_asset/DefaultPage.html (45)
处理程序在我的应用程序中定义:
public class HPAWebView extends Application {
private static Context context;
@Override
public void onCreate() {
super.onCreate();
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, final Throwable ex) {
// Custom code here to handle the error.
Toast.makeText(HPAWebView.getAppContext(), "Oh no! " + ex.getMessage(), Toast.LENGTH_SHORT).show();
}
});
HPAWebView.context = getApplicationContext();
}
public static Context getAppContext() {
return HPAWebView.context;
}
}
...此申请表在清单中:
<application
android:name="sap.com.prototype.webview.HPAWebView"
答案 0 :(得分:0)
您的自定义异常处理程序无法捕获JavaScript异常。您可以在WebView中注册JavaScript接口,然后调用它以响应JavaScript错误事件。让我知道这是否有意义,或者我可以澄清更多。