Android和H5(JS)简单交互
2016-12-08 17:33
459 查看
接着上一篇《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简单交互就介绍完了!当然肯定还要加访问互联网的权限了,这个别忘了!
首先需要先配置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简单交互就介绍完了!当然肯定还要加访问互联网的权限了,这个别忘了!
相关文章推荐
- h5混合开发之Js和android简单交互
- Android与Js的简单交互例子
- iOS H5页面OC与JS简单交互
- JS H5界面简单交互
- H5与android原生的JS交互
- Android进阶之路 - Android中通过WebView与H5的简单交互
- 转载 ---原生和H5交互挺多的,最近也有朋友再问。这儿我写个简单的例子给大家 直接贴代码 js的
- Android与H5交互(java与js的交互)
- Android与JS的交互简单实现
- Android 中 WebView 与 js 简单交互实现图文混排效果,解决图片自适应屏幕与查看大图问题
- Android webview与H5 Js 交互
- Android和H5、JS进行交互调用
- android webview H5开发若干问题之问题三:android和js交互问题
- Android 中 WebView 与 js 简单交互实现图文混排效果,解决图片自适应屏幕与查看大图问题
- Android和JS的简单交互
- Android 和js进行简单交互处理
- 基于axis2的webservice和android简单的本地数据交互(下
- Android WebView 与JS的数据交互
- 纯css3无js实现的Android Logo(有简单动画)
- android webview js交互, 响应webview中的图片点击事件