摘要:全局配置信息區(qū)域全局配置信息,方便配置工具函數(shù)定義區(qū)域全局注冊(cè)唯一的客戶端函數(shù),給端去調(diào)用客戶端必須包括處理有回調(diào)的情況下后面有用發(fā)送數(shù)據(jù)函數(shù)拼接處理使用發(fā)起給端兼容用安卓發(fā)太快有問(wèn)題封裝分享按鈕的函數(shù)具體的場(chǎng)景去調(diào)用函數(shù)是返回的數(shù)據(jù)根據(jù)
全局配置信息區(qū)域
// 全局配置信息,方便配置 var hxsConfigBridge = { globalBridgeName:"hxsHybrid", globalBridgeObject:"hxsNativeBride" }
工具函數(shù)定義區(qū)域
window[hxsConfigBridge.globalBridgeName] = window[hxsConfigBridge.globalBridgeName] || {}; //全局注冊(cè)唯一的客戶端函數(shù),給app端去調(diào)用客戶端 function requestHybrid ( params){ if (! params.tagName ){ alert("必須包括tagName"); return; } var tt = (new Date().getTime() ) + "_"+ Math.random() + "_"; var t = hxsConfigBridge.globalBridgeName +"_"+ params.tagName + "_" + tt; var tmpFn; //處理有回調(diào)的情況下 if( params.callback ){ tmpFn = params.callback; // 后面有用 params.callbackT = t; window[hxsConfigBridge.globalBridgeName][t] = function (data){ tmpFn( data) } } // 發(fā)送數(shù)據(jù)函數(shù) bridgePostMsg( params ) } // 拼接處理Url function getHybridUrl( params ){ var k,paramStr = "", url = hxsConfigBridge.globalBridgeName +"://"+params.tagName, flag = "?"; if( params.callback ){ flag = "&"; url += "?callback="+ params.callbackT } if( params.param ){ if ( typeof params.param == "object" ){ paramStr = JSON.stringify(params.param) } url = url + flag + "param="+ encodeURIComponent(paramStr ); } // hxsHybrid://?callback=callbackId return url; } // 使用iframe發(fā)起 url schema 給app端 function bridgePostMsg ( params){ var url = getHybridUrl( params); //兼容ios6 用 iframe var ifr = document.createElement("iframe"); ifr.id = params.callbackId; ifr.src = url; ifr.onload = function() { console.log("iframe onload loaded"); }; if( navigator.userAgent.indexOf("Android") > -1 ){ // 安卓發(fā)太快 有問(wèn)題 setTimeout(function(){ document.body.appendChild(ifr); },10) }else{ document.body.appendChild(ifr); } setTimeout(function(){ document.body.appendChild(ifr); ifr.remove(); ifr = null; },1000) } // 封裝分享按鈕的函數(shù) window[hxsConfigBridge.globalBridgeObject] = window[hxsConfigBridge.globalBridgeObject] || {}; window[hxsConfigBridge.globalBridgeObject].shareBtnInApp = function (param = {}, callback) { requestHybrid({ tagName:"shareBtnInApp", param:param, callback:function(data){ callback(data) } }) }
-----------------
具體的場(chǎng)景去調(diào)用 shareBtnInApp函數(shù)
var __param = { name:"wwb", age:32 } window[hxsConfigBridge.globalBridgeObject].shareBtnInApp( __param, function(data){ // data是app返回的數(shù)據(jù) // 根據(jù)app返回的data數(shù)據(jù)格式來(lái)處理業(yè)務(wù) // { // code:200, // data:{ // name:"jerry", // work:"前端開發(fā)" // } // } if(data.code == 200){ alert("回調(diào)成功了") } })
參考:
https://www.imooc.com/learn/850
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/90125.html
摘要:個(gè)人博客已上線,歡迎前去訪問(wèn)評(píng)論無(wú)媛無(wú)故的個(gè)人博客以下內(nèi)容若有問(wèn)題煩請(qǐng)即時(shí)告知我予以修改,以免誤導(dǎo)更多人。把一個(gè)邏輯值轉(zhuǎn)換為字符串,并返回結(jié)果。注冊(cè)后,可直接調(diào)用的接口,并獲取的返回值。 個(gè)人博客已上線,歡迎前去訪問(wèn)評(píng)論!無(wú)媛無(wú)故 - wangchloe的個(gè)人博客 以下內(nèi)容若有問(wèn)題煩請(qǐng)即時(shí)告知我予以修改,以免誤導(dǎo)更多人。 toString() && valueOf() JSON ...
摘要:個(gè)人博客已上線,歡迎前去訪問(wèn)評(píng)論無(wú)媛無(wú)故的個(gè)人博客以下內(nèi)容若有問(wèn)題煩請(qǐng)即時(shí)告知我予以修改,以免誤導(dǎo)更多人。把一個(gè)邏輯值轉(zhuǎn)換為字符串,并返回結(jié)果。注冊(cè)后,可直接調(diào)用的接口,并獲取的返回值。 個(gè)人博客已上線,歡迎前去訪問(wèn)評(píng)論!無(wú)媛無(wú)故 - wangchloe的個(gè)人博客 以下內(nèi)容若有問(wèn)題煩請(qǐng)即時(shí)告知我予以修改,以免誤導(dǎo)更多人。 toString() && valueOf() JSON ...
閱讀 735·2021-11-24 10:19
閱讀 1118·2021-09-13 10:23
閱讀 3438·2021-09-06 15:15
閱讀 1785·2019-08-30 14:09
閱讀 1697·2019-08-30 11:15
閱讀 1848·2019-08-29 18:44
閱讀 944·2019-08-29 16:34
閱讀 2466·2019-08-29 12:46