Android中 webView调用JS出错的解决办法

作者:hebedich 时间:2021-12-02 21:23:25 

问题

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

标签:Android,webView,调用JS
0
投稿

猜你喜欢

  • Java8 Collectors.toMap的坑

    2023-06-24 14:47:48
  • Android 中无法取消标题栏的问题小结(两种方法)

    2021-06-25 19:45:02
  • Spring Boot + Mybatis多数据源和动态数据源配置方法

    2023-02-16 17:15:31
  • android 通知Notification详解及实例代码

    2023-06-26 12:11:42
  • SpringCloud版本问题报错及解决方法

    2023-01-29 23:19:46
  • 详解Spring中的Environment外部化配置管理

    2023-11-23 05:24:24
  • C#中委托和事件的区别实例解析

    2022-07-03 09:28:39
  • IDEA版最新MyBatis程序配置教程详解

    2022-08-25 03:27:26
  • Unity实现UI光晕效果(发光效果)

    2022-07-08 16:37:41
  • Unity 读取文件 TextAsset读取配置文件方式

    2023-07-05 12:24:05
  • Java实现将图片上传到webapp路径下 路径获取方式

    2023-07-10 12:44:13
  • Android AIDL实现与服务相互调用方式

    2021-08-09 10:57:40
  • 在Spring中编写事务的介绍

    2021-12-15 10:33:18
  • Spring整合Quartz实现定时任务调度的方法

    2023-07-07 00:55:55
  • Java overload和override的区别分析

    2023-10-12 15:16:17
  • Java基于swing实现的弹球游戏代码

    2023-09-15 05:13:49
  • Android实现授权访问网页的方法

    2022-05-13 15:39:57
  • C# Split分隔字符串的应用(C#、split、分隔、字符串)

    2021-12-01 23:13:51
  • 封装flutter状态管理工具示例详解

    2022-04-17 14:15:56
  • Java 实现模拟用户登录的示例代码

    2022-10-16 04:23:06
  • asp之家 软件编程 m.aspxhome.com