天天看点

H5页面和移动端对接数据

 1、H5页面和移动端对接数据具体如下:

var params = {
  p:this.list_data.pager.page,
  pageSize:this.list_data.pager.pageSize
};//参数
var paramsStr = JSON.stringify(params);
var isIOS = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);//判断是否为IOS
var isAndroid = /Android/i.test(navigator.userAgent);//判断是否为android
if(isIOS){
  window.webkit.messageHandlers['getHeader'].postMessage(paramsStr); //ios调用
//getHeader是和ios端共同定义好的ios端的方法名,提供给前端调用,可以给ios端传参
}else if(isAndroid){
  var getStr = android.getHeader(paramsStr); //Android调用
//android.getHeader为和android共同定义的Android的方法,提供给前端调用并传参,getStr是android端返回的参数,Android端有回调,可以在回调里传参数,ios端没有回调,无法在回调里回传参数,需要在前端定义好方法等待ios端调用
  localStorage.setItem('headerObj',getStr);
  this.getList();
}

mounted(){
  window.getThisHeader = this.getThisHeader;
//要这样处理ios调用js的方法才能成功
 },

getThisHeader(data){
  var headerObj = JSON.stringify(data);
  localStorage.setItem('headerObj',headerObj);
  this.getList();
},
//h5端定义getThisHeader(data)方法等ios端调用,data为ios端传回的参数
           

2、H5页面在IOS兼容问题记录

在ios中,不支持"2017-12-26 19:36:00"格式,会显示NaN (Android中都可以显示正常),解决方案:ios支持"2017/12/26 19:36:00",所以用以下方式转:

var time = "2017-12-26 19:36:00";

time = time.replace(/\-/g, "/");//将时间格式的'-'转成'/'形式,兼容iOS

继续阅读