Android中 webView调用JS出错的解决办法_安卓软件开发教程-查字典教程网
Android中 webView调用JS出错的解决办法
Android中 webView调用JS出错的解决办法
发布时间:2016-12-28 来源:查字典编辑
摘要:问题webView调用JS出错。复制代码代码如下:classTestJS{......publicTestJS(){}publicvoids...

问题

webView调用JS出错。

复制代码 代码如下:

class TestJS {

......

public TestJS(){

}

public void save(String data){

webView.loadUrl("javascript: alert(" + data +")");

}

......

}

复制代码 代码如下:

W/WebView(2088): java.lang.Throwable: A WebView method was called on thread 'JavaBridge'. All WebView methods must be called on the same thread. (Expected Looper Looper (main, tid 1) {b3dbcb18} called on Looper (JavaBridge, tid 120) {b44a1af8}, FYI main Looper is Looper (main, tid 1) {b3dbcb18})

W/WebView(2088): at android.webkit.WebView.checkThread(WebView.java:2063)

W/WebView(2088): at android.webkit.WebView.loadUrl(WebView.java:794)

W/WebView(2088): at com.ue.oa.activity.XFormActivity.alert(XFormActivity.java:180)

W/WebView(2088): at com.ue.oa.activity.XFormActivity$FormActions.save(XFormActivity.java:193)

W/WebView(2088): at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)

W/WebView(2088): at com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27)

W/WebView(2088): at android.os.Handler.dispatchMessage(Handler.java:102)

W/WebView(2088): at android.os.Looper.loop(Looper.java:136)

W/WebView(2088): at android.os.HandlerThread.run(HandlerThread.java:61)

解决

将save方法修改为:

复制代码 代码如下:

public void save(String data){

webView.post(new Runnable() {

@Override

public void run() {

webView.loadUrl("javascript: alert(" + data +")");

}

});

}

以上就是解决方法了,是不是很简单呢,希望小伙伴们能够喜欢。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新安卓软件开发学习
    热门安卓软件开发学习
    编程开发子分类