Android 与 JS 的交互:JsBridge 的简单使用
前言
因为JsBridge里的example
内容很多,自己第一次看这个东西,一下子还是一头雾水的,关于Android
与JavaScript
的交互,之前都是直接使用WebView
来实现的,可是后来并没有深入去研究这个东西,原先项目使用到的WebView
,也因为仅仅只是展示html
页面,为了优化,也换成了TBS腾讯浏览服务,之后再也没接触到Android与JS交互相关的知识,就趁这个机会,把这方面的一点心得记录一下。
准备工作
1.首先,需要在根目录下的build.gradle
文件中加上:
2.然后,需要在app
目录下的build.gradle
文件中加上依赖:
开始使用
一、实现通过JavaScript调用Android方法
1.在src/main
文件夹下新建一个assets
文件夹,然后在里面新建一个demo.html
文件,内容如下所示:
2.需要在activity_main.xml
文件中,加上布局:
3.在MainActivity.java
中注册一个方法jsCallAndroid
,用于JS
调用,并且使用loadUrl
加载demo.html
文件,代码如下所示:
上面主要是为了使Android
与JS
的交互更为形象,所以就模拟成一个网络请求获取用户信息的方式来说明,其意思是,当从JS
调用这个Android
方法jsCallAndroid
时,需要传入参数data
,也就是{ "name" : "weihao" }
,然后会从Android
返回用户信息,也就是:
4.运行效果,如下图所示:
上部分是demo.html
文件页面,下部分是Android
原生页面,其中可以看到,当点击Call Android Method
按钮时,JS
调用Android
方法jsCallAndroid
,Android
页面的TextView
控件获取到了传过来的参数{ "name" : "weihao" }
,并且在demo.html
页面确实从Android
返回了用户信息:
二、实现在Android里调用JavaScript方法
1.在activity_main.xml
文件中,加上一个Button
控件,代码如下所示:
2.需要在demo.html
文件里的connectWebViewJavascriptBridge
方法里加上一个让Android
调用的方法androidCallJS
,代码如下所示:
3.在MainActivity.java
中加上如下代码,用于调用JS
里的androidCallJS
方法,代码如下所示:
以上也是通过模拟网络请求获取用户信息的方式,来形象说明Android
与JS
的交互,只不过改成了从Android
传入用户名,从JS
返回用户信息而已。
4.运行效果,如下图所示:
示例代码:https://github.com/BRAVE2HEART/JsBridge-example
版权声明: 本文为 InfoQ 作者【brave heart】的原创文章。
原文链接:【http://xie.infoq.cn/article/1b2b9983870de626efdf24614】。文章转载请联系作者。
评论 (2 条评论)