Android WebView:未捕获异常

时间:2013-12-19 08:14:45

标签: exception exception-handling webview android-webview

我遵循在我的应用程序的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"

1 个答案:

答案 0 :(得分:0)

您的自定义异常处理程序无法捕获JavaScript异常。您可以在WebView中注册JavaScript接口,然后调用它以响应JavaScript错误事件。让我知道这是否有意义,或者我可以澄清更多。