H5与app对接协调数据
JavaScript与iOS通信用window.webkit.messageHandlers和postMessage方法进行通信;
JavaScript与Android通信用androidNative对象进行通信,并使用JSON来传递数据;
/**
* 获取APP设备预览图
*/
import store from '../../store/index.js';
let info = JSON.parse(sessionStorage.getItem('loginInfo'));
function GetPview(device) {
if (store.state.PreviewImag) {
store.commit("setPreviewImag", false);
if (!isDev) {
if (info.isIOS == 'true') {
if (window.webkit.messageHandlers.getDeviceId && typeof window.webkit.messageHandlers.getDeviceId.postMessage === 'function') {
let eseeid_arr = [];
let obj = {};
for (let i = 0; i < device.length; i++) {
obj = {};
obj['eseeid'] = device[i].eseeid
eseeid_arr.push(obj)
}
let arrItem = {
type: 'cloud',
arr: eseeid_arr
}
window.webkit.messageHandlers.getDeviceId.postMessage(arrItem);
}
} else {
if (typeof androidNative.getDeviceId === 'function') {
let eseeid_arr = []
for (let i = 0; i < device.length; i++) {
eseeid_arr.push(device[i].eseeid)
}
let arrItem = {
type: 'cloud',
arr: eseeid_arr
}
androidNative.getDeviceId(JSON.stringify(arrItem));
}
}
} else {
let dev = device;
setTimeout(() => {
let arr = []
for (let k = 0; k < dev.length; k++) {
let obj = {
eseeid: dev[k].eseeid,
img: '',//开发把base64放这
};
arr.push(obj)
}
// getAvatar(arr)
}, 2000);
}
}
}
window['getAvatar'] = function (data) {
/**
* APP返回数据结构
* {
"type" : "cloud", //iot或 cloud
"eseeidImg" : [
{
"eseeid": "4949856985",
"img": ""
}
]
}
*/
let Item = data;
if (info.isIOS == 'true') {
let returnData = JSON.parse(Item);
let appcall = [];
appcall = returnData.eseeidImg;
store.commit("setPreviewDevice", appcall);
} else {
let appcall = Item.eseeidImg;
store.commit("setPreviewDevice", appcall);
}
// store.commit("setPreviewDevice", data);
}
export {
GetPview
}