Android与JS之间跨平台异步调用

 为什么突然要搞这个问题呢?

   在开发浏览器的时候遇到这个狗血的问题,花了将近1天的时间才想到这个解决方案,Android与JavaScirpt互调。

  因为接口是抓取的别人的,所以出现了JS跨域问题,Android闪亮登场搞定了。

 GIF动画演示

  

  WebView相关设置

WebSettings mWebSettings = getSettings();mWebSettings.setDefaultTextEncodingName("UTF-8");//设置默认的显示编码mWebSettings.setJavaScriptEnabled(true);//调用JS方法.安卓版本大于17,加上注解 @JavascriptInterface

 直接放大招->贴代码

 Android

addJavascriptInterface(new Object() {      @JavascriptInterface      public void toastMessage(final String url, final int type, final int dir) {        L.e("url = " + url + " type = " + type + " dir = " + dir);        APIWrapper.getInstance()            .getLenovoWord(url)            .subscribeOn(Schedulers.io())            .observeOn(AndroidSchedulers.mainThread())            .subscribe(new RxSubscriber() {              @Override              public void _onNext(ResponseBody responseBody) {                try {                  String data = responseBody.string();                  L.e("data = " + data);                  loadUrl("javascript:ResCompleted(" + data + "," + type + "," + dir + ")");                } catch (IOException e) {                  e.printStackTrace();                }              }              @Override              public void _onError(String msg) {                loadUrl("javascript:ResCompleted(" + msg + ")");              }            });      }    }, "Android");

 Html

  Js调用Android代码    

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多相关文章

  1. Android与Html&JS交互
  2. 两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEve
  3. 【基于zxing的编解码实战】zxing项目源码解读(2.3.0版本,Android部
  4. android2.2中EditText不可编辑的问题
  5. Android(安卓)利用JNI调用Android(安卓)Java代码函数
  6. Android高手进阶教程(七)之----Android(安卓)中Preferences的使
  7. android之TextView属性
  8. Android(安卓)引用外部字体
  9. android taskAffinity属性

随机推荐

  1. .net core使用Redis发布订阅方法介绍
  2. C#中关于List<T>的并集与交集以及差集解
  3. C#中发送邮件的实现方法详解
  4. C# 数组作为参数传递出现的问题解决
  5. C#中引用类型之特例string的详细介绍
  6. C#实现Json序列化删除null值的方法实例
  7. c#如何生成二维码的示例分享
  8. C#如何通过对象属性名修改值的实例
  9. C#中Builder生成器模式解决配置电脑的问
  10. c#接口的问题的解决办法详解