Android与H5的交互

如今H5的广泛应用,使得Android与H5交互也变得十分广泛,在项目中用到非常频繁,这篇文章就交互问题举个栗子浅谈一下。

Android通过内置的控件Webview来加载H5页面。webview的应用十分简单,只有设置一下其属性即可。代码如下:

webView.setVerticalScrollBarEnabled(false);
webView.setHorizontalScrollBarEnabled(false);
webView.getSettings().setJavaScriptEnabled(true); //加上这句话才能使用JavaScript方法  
webView.getSettings().setDomStorageEnabled(true);
webView.requestFocus();
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSavePassword(false);
webView.getSettings().setSaveFormData(false);
webView.getSettings().setSupportZoom(false);

而在H5页面里面代码如下(这部分代码从别处参考过来,已验证正确性):

<html>

<head>

<meta charset="UTF-8">

<title>交互Demo</title>

<meta content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width" name="viewport">

</head>



<body>

getUserinfo:

<div id="userinfo"></div>

<input value="立即报名" type="button" onClick="baoming();" /><br>



<script>

/*var rs=window.om.getUserinfo();

document.getElementById('userinfo').innerHTML=rs;*/

var rs=window.demo.getUserinfo();

var obj = eval ("(" + rs + ")");

if(obj.status){

document.getElementById('userinfo').innerHTML=obj.data.nickname;

}

function baoming(){

if(window.demo.needLogin()){

location.href='my_demo1.html';

}

}

</script>

</body>

</html>

然后接下来就是在Android里面实现交互的东西了:

 webView.addJavascriptInterface(new PayJavaScriptInterface(), "demo");这句话就是给android添加javascript代码,让H5页面能够调用,第二个参数对应的是H5里面的"

“window”后面的值。
在activity里面实现H5里面的方法,注意方法之前要加上注解“@JavascriptInterface”,当android:targetSdkVersion的数值小于17无所谓,当大于等于17时就必须添加,否则不会调用方法里面的Java代码。

   final class PayJavaScriptInterface  {


PayJavaScriptInterface()
 {

}





@JavascriptInterface

public String getUserinfo()  {


}



@JavascriptInterface
public boolean needLogin()  {


}

   }

到此,就可以实现交互功能,如果Android需要提交数据给H5的话,就可以把所需的内容转为Json串即可。
(是不是很简单明了,欢迎关注收藏。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值