Android中webView调用JS出错的解决办法
问题
webView调用JS出错。
classTestJS{
......
publicTestJS(){
}
publicvoidsave(Stringdata){
webView.loadUrl("javascript:alert("+data+")");
}
......
}
W/WebView(2088):java.lang.Throwable:AWebViewmethodwascalledonthread"JavaBridge".AllWebViewmethodsmustbecalledonthesamethread.(ExpectedLooperLooper(main,tid1){b3dbcb18}calledonLooper(JavaBridge,tid120){b44a1af8},FYImainLooperisLooper(main,tid1){b3dbcb18})
W/WebView(2088): atandroid.webkit.WebView.checkThread(WebView.java:2063)
W/WebView(2088): atandroid.webkit.WebView.loadUrl(WebView.java:794)
W/WebView(2088): atcom.ue.oa.activity.XFormActivity.alert(XFormActivity.java:180)
W/WebView(2088): atcom.ue.oa.activity.XFormActivity$FormActions.save(XFormActivity.java:193)
W/WebView(2088): atcom.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(NativeMethod)
W/WebView(2088): atcom.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27)
W/WebView(2088): atandroid.os.Handler.dispatchMessage(Handler.java:102)
W/WebView(2088): atandroid.os.Looper.loop(Looper.java:136)
W/WebView(2088): atandroid.os.HandlerThread.run(HandlerThread.java:61)
解决
将save方法修改为:
以上就是解决方法了,是不是很简单呢,希望小伙伴们能够喜欢。
publicvoidsave(Stringdata){
webView.post(newRunnable(){
@Override
publicvoidrun(){
webView.loadUrl("javascript:alert("+data+")");
}
});
}
相关文章