javascript - 兼容Android和ios的網(wǎng)頁(yè)調(diào)起原生app問(wèn)題,使用iframe在ios的Safari無(wú)效?
問(wèn)題描述
如題,公司下來(lái)的一個(gè)需求,要求手機(jī)上裝了app則調(diào)轉(zhuǎn)到指定的頁(yè)面,如果沒(méi)有裝則跳轉(zhuǎn)到下載頁(yè)面,遍尋網(wǎng)上的代碼,經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)了一個(gè)問(wèn)題。
普遍來(lái)說(shuō)有兩種辦法:
第一種是iframe:遇到的問(wèn)題是通過(guò)隱藏一個(gè)iframe調(diào)起app,過(guò)幾秒后跳轉(zhuǎn)頁(yè)面,在Android上是可以的,但是在ios上測(cè)試無(wú)效果,始終沒(méi)有調(diào)用起來(lái),調(diào)用 sms:// tel://也不行;測(cè)試機(jī)iphone6,系統(tǒng)10.0.2;
第二種方法是使用a標(biāo)簽的href屬性跳轉(zhuǎn),如果app已經(jīng)安裝了Android和ios上都可以,但是如果沒(méi)有安裝app,在ios上網(wǎng)頁(yè)會(huì)報(bào)一個(gè)網(wǎng)址無(wú)效的錯(cuò)誤,這個(gè)是產(chǎn)品那里不允許的。
求教sf論壇里的大神來(lái)指點(diǎn)一下正確調(diào)起app的方式,拜謝。
另外還有一種方法是
<a href='itms://itunes.apple.com/app/id452186370'>百度地圖</a>
這種應(yīng)該說(shuō)很好,但是與我的需求有一點(diǎn)不合,我們這里要求是跳轉(zhuǎn)到app指定頁(yè)面而不是單單調(diào)起來(lái)。
問(wèn)題解答
回答1:在iOS上,首先app必須注冊(cè)自己的URL Schemes,就是申明一個(gè)特殊的前綴去代替http,比如abc,你在網(wǎng)頁(yè)上檢測(cè)是否是iOS,如果是,就把http換成abc,再打開(kāi)這個(gè)鏈接。如果是https還是換成abc。
