前言
最近項(xiàng)目中要放個(gè)攜程網(wǎng)頁,本以為用WKWebView,但是產(chǎn)品測試給我反應(yīng),如果手機(jī)裝了攜程App,點(diǎn)擊攜程網(wǎng)頁會(huì)自動(dòng)跳轉(zhuǎn)到攜程App,由于是分傭模式,如果跳轉(zhuǎn)到攜程App下單的話,并不會(huì)記錄到我們的訂單中。
1.URL Schemes
第一個(gè)反應(yīng)就是 URL Schemes,是不是這個(gè)原因?qū)е碌摹?br> App跳轉(zhuǎn)其他App的時(shí)候,我們都會(huì)有一個(gè)提示框,XXXX想打開微信,如果我們點(diǎn)確定就會(huì)直接跳到微信。但是要要在項(xiàng)目中的URL Types中配置,還需要加入白名單。
image.png
解決:
1.很多要打開微信App的時(shí)候,url鏈接都是wechat://開頭的,其實(shí)這就是微信的URL Schemes
2.然后我百度找到了攜程的URL Schemes
3.在WKWebView代理中,如果url的URL Schemes是攜程的,就禁止跳轉(zhuǎn)
結(jié)果當(dāng)然是失敗了。
2.Universal Links(通用鏈接)
一種能夠方便的通過傳統(tǒng)HTTP鏈接來啟動(dòng)APP,使用相同的網(wǎng)址打開網(wǎng)站和APP,使用就不介紹了,我要實(shí)現(xiàn)的是反其道而行。
大概意思就是:蘋果公司希望優(yōu)化用戶體驗(yàn),用戶不用點(diǎn)擊跳轉(zhuǎn)App的提示彈窗,直接拉起你要跳轉(zhuǎn)的App,但是需要進(jìn)行一些列配置。
解決:
只需要在WKWebView代理中加入如下代碼就可以了。
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{
//返回+2的枚舉值
decisionHandler(WKNavigationActionPolicyAllow + 2);
}