Android与JS之间跨平台异步调用实例详解
16lz
2021-12-04
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代码
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
更多相关文章
- Android与Html&JS交互
- 两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEve
- 【基于zxing的编解码实战】zxing项目源码解读(2.3.0版本,Android部
- android2.2中EditText不可编辑的问题
- Android(安卓)利用JNI调用Android(安卓)Java代码函数
- Android高手进阶教程(七)之----Android(安卓)中Preferences的使
- android之TextView属性
- Android(安卓)引用外部字体
- android taskAffinity属性