android h5 保存账号,Android与H5交互,向H5注入APP账号密码免登录等。

68cd5a78bc3b?tdsourcetag=s_pctim_aiomsg

image.png

需求类型:Android调用JS代码

loadUrl()方法 (本文方法)

需求描述:Android端嵌套了3个H5页面,APP登录之后,免去H5登录。

JS代码:

var getUserInfo= function(value){

var username = value["userid"];

var password = value["password"];

alert("username");

alert(username);

alert("password");

alert(password);

$.ajax({

url:"http://bossxie.qianyankeji.net/index.php/index/publics/uplogin.html",

type:"post",

data:{'username':username,'password':password},

success:function(json){

var parsedInfo = $.parseJSON(json);

console.log(parsedInfo);

if(parsedInfo.status == 1){

// layer.msg(parsedInfo.msg);

window.localStorage.userInfo = json;

var boss = $.parseJSON(window.localStorage.userInfo);

console.log("boss");

console.log(boss);

if (parsedInfo.info.type == 1) {

location.href = "firm.html";

} else if(parsedInfo.info.type == 2) {

location.href = "student.html";

} else{

}

}else if(parsedInfo.status == 0){

alert(parsedInfo.msg);

}

}

})

}

Android代码:

try {

//写在WebViewClient的onPageFinished方法里面

//因为JS代码里面的参数类型是JSONObject,所以我下面这么写。具体可根据JS代码里面的类型改变。

JSONObject json = new JSONObject();

json.put("userid", "13112345678");

json.put("password", "111111");

webView.loadUrl("javascript:getUserInfo(" + json + ")");

} catch (JSONException e) {

e.printStackTrace();

}

-------------------------------------------------------------------

//支持App内部javascript交互。这个一定要记得设置。

webView.getSettings().setJavaScriptEnabled(true);

需求类型:JS调用Android代码

通过addJavascriptInterface()添加对象印射方法 (本文方法)

需求描述:Android端嵌套了3个H5页面,只要是APP打开的H5就隐藏H5页面里面的标题栏。

JS代码:

var isApp;

if (window.localStorage.getItem('isApp')) {

isApp = (window.localStorage.getItem('isApp') === 'true') ? true : false;

} else {

isApp = window.fromApp ? true : false;

window.localStorage.setItem('isApp', String(isApp));

}

// alert('window.fromApp='+window.fromApp);

// alert('isApp='+isApp);

console.log(isApp ? 'APP环境' : '非APP环境');

Android代码:

//前端判断fromApp这个对象是否为空,我们随便返回不让为空就行

webview.addJavascriptInterface(new Object(), "fromApp");

public class Object {

@JavascriptInterface

// 这个fromApp为属性名

public int fromApp() {

return 1;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值