zoukankan      html  css  js  c++  java
  • [原][Android]All WebView methods must be called on the same thread.


    问题

        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 +")");
                }
            });
        }

    【Reference】
    [1] 《android webview.loadUrl won't load another webpage》 : http://stackoverflow.com/questions/21955593/android-webview-loadurl-wont-load-another-webpage
    作者:wintys (wintys@gmail.com)  出处:http://wintys.cnblogs.com   欢迎转载,转载请注明作者及出处。
  • 相关阅读:
    @configuration 和 @bean
    js中关键字 const , let , var 的用法区别
    springboot+vue项目demo地址
    快速开发框架下载地址(github)
    搭建vue项目并启动vue项目
    export default{} 和 new Vue()都是什么意思
    反向代理
    [转]python类方法
    linux中waitpid及wait的用法
    mount
  • 原文地址:https://www.cnblogs.com/wintys/p/3797656.html
Copyright © 2011-2022 走看看