鍍金池/ 問(wèn)答/iOS  網(wǎng)絡(luò)安全  HTML/ H5用Url Scheme ,向ios傳遞信息 ,H5異步請(qǐng)求被阻止的問(wèn)題

H5用Url Scheme ,向ios傳遞信息 ,H5異步請(qǐng)求被阻止的問(wèn)題

場(chǎng)景描述

app中的H5頁(yè)面在打開(kāi)加載時(shí),通過(guò)scheme協(xié)議向IOS傳遞信息:

//跳轉(zhuǎn)方式
 window.location.href ='menhong://activityMoments'

問(wèn)題

上面相當(dāng)于跳轉(zhuǎn)一個(gè)“不存在”的頁(yè)面,只是用于向ios傳遞信息,最終還是在當(dāng)前H5頁(yè)面。但ios會(huì)阻止掉當(dāng)前H5頁(yè)面里的異步請(qǐng)求,比如 所有正在請(qǐng)求的圖片,都被阻止了。

請(qǐng)問(wèn),如果我還是通過(guò)scheme協(xié)議通訊,那么這個(gè)問(wèn)題有什么方法解決???

回答
編輯回答
拼未來(lái)

已解決,通過(guò)創(chuàng)建添加iframe標(biāo)簽, iframe的src定向到你的scheme協(xié)議,這樣,ios能捕捉到scheme,切當(dāng)前頁(yè)面沒(méi)有跳轉(zhuǎn)新頁(yè)面的動(dòng)作,所有的請(qǐng)求都在進(jìn)行中。

 let iframe = document.createElement('iframe');
      const time=new Date().getTime();
      iframe.id = 'schemeUse'+time;
      iframe.src = scheme;
      iframe.height = '0';
      iframe.width = '0';
      iframe.frameborder = '0';
      const app = document.getElementById('app');
      app.appendChild(iframe);
      app.removeChild(iframe);
2017年7月9日 16:35
編輯回答
愿如初

我對(duì)這個(gè)url schemes了解一些
按照你的代碼
應(yīng)該是會(huì)跳轉(zhuǎn)到menhong 對(duì)應(yīng)的app對(duì)吧,為什么會(huì)留在當(dāng)前h5頁(yè)面呢?

2017年7月30日 19:02