2013-12-19 89 views
0

我遵循在我的应用程序的onCreate方法中定义Thread.setDefaultUncaughtExceptionHandler的方法。这个应用程序也在清单中定义。处理程序也被创建,但它的处理程序从来没有被调用过,虽然我在LogCat中看到了一个JavaScript错误。Android WebView:异常未捕获

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

您的自定义异常处理程序是不是能赶上JavaScript例外。您可以在WebView中注册一个JavaScript接口,然后调用它来响应JavaScript错误事件。让我知道这是否合理,或者我可以澄清更多。