话很少说直接奔入主题,了解了使用hybrid的缘由,以及更新上线流程,咱们在这里再说一下 js 如何与客户端通讯。。安全
使用:NgariHealth://直接打开纳里健康 app网络
void function (window, undefined) { //调用 schema 协议 function _invoke(action, data, callback) { //拼接 schema 协议 var schema = 'myapp://utils/' + action //拼接参数 schema += '?a=a'; for (const key in data) { if (data.hasOwnProperty(key)) { const element = data[key]; schema += '&' + key + '=' + element; } } // 处理 callback var callbackName = ''; if (typeof callback === 'string') { callbackName = callback; } else { callbackName = action + Date.now(); window[callbackName] = callback; } schema += 'callback=' + callbackName; var iframe = document.createElement('iframe'); iframe.src = schema; var body = document.body; body.appendChild(iframe); setTimeout(()=>{ body.removeChild(iframe); iframe = null; }) } //暴露到全局变量 window.invoke = { share: function (data, callback) { _invoke('share', data, callback); }, scan: function (data, callback) { _invoke('share', data, callback); }, login: function (data, callback) { _invoke('share', data, callback); }, } }(window)