Android中 webView调用JS出错的解决办法
程序员文章站
2022-03-23 14:06:16
问题
webview调用js出错。
复制代码 代码如下:
class testjs {...
问题
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之间的交互
-
Android WebView的使用方法及与JS 相互调用
-
Android中在WebView里实现Javascript调用Java类的方法
-
Android中 webView调用JS出错的解决办法
-
Android 踩坑之 ScrollView中的WebView底部出现大段空白 的解决办法
-
Android 入门第八讲02-WebView的高级用法(Android调用 JS 代码( loadUrl 方法,案例练习),JS调用 Android 代码,流行框架总结,跨平台技术)
-
Android实现js及webview交互之在html页面中调用系统摄像头_html/css_WEB-ITnose
-
在Android的webview中定制js的alert,confirm和prompt对话框的方法
-
Android实现js及webview交互之在html页面中调用系统摄像头_html/css_WEB-ITnose
-
Android中在WebView里实现Javascript调用Java类的方法