码迷,mamicode.com
首页 > 移动开发 > 详细

Android 利用webview开发webApp和本地交互出现的一个问题

时间:2015-10-15 12:54:29      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

问题是:

A WebView method was called on thread ‘JavaBridge‘. All WebView methods must be called on the same 

 

我英语不好看不太懂,大致的了解了下原因。

 

之前我的代码是这样。

1   @JavascriptInterface
2         public void  needLogin(String username,String password)  {
3           if (username.equals("abc")&&password.equals("123")){
4               Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
5               webView.loadUrl("file:///android_res/raw/test1.html");
6           }else {
7               Toast.makeText(MainActivity.this,"登录失败",Toast.LENGTH_SHORT).show();
8           }
9         }

 

运行就错了,就是在webView重新loadUrl的时候出现了问题。

 

然后我这样改了下,就ok了,

 1   @JavascriptInterface
 2         public void  needLogin(String username,String password)  {
 3           if (username.equals("abc")&&password.equals("123")){
 4               Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
 5               webView.post(new Runnable() {
 6                   @Override
 7                   public void run() {
 8                       webView.loadUrl("file:///android_res/raw/test1.html");
 9                   }
10               });
11             
12           }else {
13               Toast.makeText(MainActivity.this,"登录失败",Toast.LENGTH_SHORT).show();
14           }
15         }

 

我想大家肯定猜到了什么了。webView会checkThread,导致不行,因为在js调用后的Java回调线程并不是主线程。

 

Android 利用webview开发webApp和本地交互出现的一个问题

标签:

原文地址:http://www.cnblogs.com/itpepe/p/4881953.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!