Android和H5(JS)简单交互

接着上一篇《WebView简单使用》加载好界面之后要有一个需求就是当用户点击页面上的一个按钮时,JS要调用Android本地的方法,下面就说下JS怎样调用Android本地的方法的:
首先需要先配置WebView可以调用JS方法的权限,
WebSettings webSettings = mWebView .getSettings();
webSettings.setJavaScriptEnabled(true);
然后需要声明一个类,在这个类中创建JS需要调用的Android本地的Java方法,并且要用@JavascriptInterface来进行注解!从注解的字面意思看其实就是定义了一个JS需要调用的一个接口,例如:

public class JsInteration {
@JavascriptInterface
public String back() {
return “hello world”;
}
那么在js中怎么来调用呢?

function s(){ //调用Java的back()方法 **var result =window.android.back();** document.getElementById("p").innerHTML=result; }

注意这里的方法名一定要是一样的!
在上面都做好之后,最关键的一步就是对这个接口进行注册,其实就是调用 mWebView.addJavascriptInterface()方法!
mWebView.addJavascriptInterface(new JsInteration(), “android”);
第一个参数就是我们建的这个类的实例对象,第二个参数就是一个类似标签的字符串,其实就是一个可以让JS识别这个实例对象的名称!
到这里JS调用Android本地方法已经介绍完了,下面就是介绍一下Android本地调用JS方法,在工作中,H5界面通过JS调用Android本地的扫二维码功能,然后Android会获取一个条信息,需要讲这条信息更新到之前的H5界面上,这时候就需要调用JS方法来更新H5界面了!

若调用的js方法没有返回值,则直接可以调用mWebView.loadUrl(“javascript:do()”);其中do是js中的方法;例如:
webView.loadUrl(“javascript:setNo(‘” + mid + “’)”);这个“javascript:”一定不能少,setNo是方法名,还可以传递参数,但是在传递参数的时候记得要加“‘”单引号,不然会报错找不到资源!这样JS那边就会这行这个方法并且拿到我们传递的参数来更新H5界面数据!
若有返回值时我们可以调用mWebView.evaluateJavascript()方法:
这个方法必须是API19以后才能使用
mWebView.evaluateJavascript(“sum(1,2)”, new ValueCallback() {
@Override
public void onReceiveValue(String value) {
Log.e(TAG, “onReceiveValue value=” + value);
}
});
这里Android和H5简单交互就介绍完了!当然肯定还要加访问互联网的权限了,这个别忘了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值