更新 18.02.27html
Universal Link也被微信封堵了。見味精大神的 blog: juejin.im/post/5a5371…
ios
Universal link 簡介
git
Apple官方文檔連接:developer.apple.com/library/con…github
通用連接是蘋果於iOS9時推出的一種無縫跳轉技術。web
官方介紹以下:安全
「當您支持通用連接時,iOS用戶能夠點擊連接到您的網站,並沒有縫地重定向到已安裝的應用程序,而無需經過Safari。若是您的應用未安裝,點擊連接到您的網站在Safari中打開您的網站。微信
相比以前的custom URL schemes方式,通用連接有如下優勢:app
獨有.不像 custom URL schemes, 通用連接不會被別的應用聲明, 由於他們用標準HTTP或HTTPS連接至您的網站.dom
安全.當用戶安裝你的應用時,iOS系統會校驗你上傳至網站的文件以確保您的網站容許您的應用程序表明其打開URLs,只有你能建立和上傳這個文件,因此網站與應用之間的關聯是安全的.post
靈活.若是您的應用沒有安裝,通用連接亦會正常運轉.當應用沒有安裝,將會如用戶所指望的在safari中打開.
簡單.一個URL能夠同時供網站與app使用.
私有.其餘應用與您的應用之間的交流無需知道您的應用是否安裝.」
(url:developer.apple.com/library/con…)
建立通用連接
這個按照官方文檔按步照班便可,或者參考如下連接:
strivingboy.github.io/blog/2015/0…
通用連接的現狀
現狀:
1.目前咱們的應用已經支持通用連接,但不能從微信中直接跳轉至咱們的應用。
2.用了一段時間以後通用連接失效。
3.對於部分手機偶現的全部APP的通用連接失效問題,已經詢問蘋果開發人員,目前還沒有有迴應。
已解決的問題:
1.在微信中沒法跳轉
由於以前在微信中跳轉的domain域是相同的,因此致使從微信中沒法跳轉至咱們的應用。
按以下操做:
a.在微信中打開的url爲 https://a.xxx.com/zzz 的網頁
b.點擊該網頁上通用連接的按鈕,通用連接爲a.xxx.com/yyy
會發現跳轉失敗,頁面仍在微信網頁中打開。
將步驟b中的通用連接改成:b.xxx.com/yyy再點擊打開便可順利跳轉至咱們的應用。
蘋果官方解釋以下:
「When a user is browsing your website in Safari and they tap a universal link to a URLin the same domainas the current webpage, iOS respects the user’s most likely intent and opens the link in Safari.If the user taps a universal link to a URL in a different domain, iOS opens the link in your app.」(url:developer.apple.com/library/con…)
即:相同domain的狀況下的跳轉,iOS系統會認爲用戶更傾向於在網頁中繼續跳轉,因此不會跳轉至對應的應用。
2.用了一段時間以後通用連接失效
緣由: 使用通用連接跳轉至咱們應用後,點擊狀態欄右邊的的 xxx.com 按鈕,通用連接失效。
點擊該按鈕會被iOS認爲是關閉用應用打開URL的功能。因此以後沒法使用應用打開URL。
解決方案:將URL在safari中打開,而後往下拉會發現出現以下圖的banner,點擊右邊的打開按鈕便可恢復。
蘋果官方解釋以下:
「When a user taps a universal link that you handle, iOS also examines the user’s recent choices to determine whether to open your app or your website. For example, a user who has tapped a universal link to open your app can later choose to open your website in Safari by tapping a breadcrumb button in the status bar. After the user makes this choice, iOS continues to open your website in Safari until the user chooses to open your app by tapping OPEN in the Smart App Banner on the webpage.」
(url:developer.apple.com/library/con…)
沒有解決的一些疑問:
問題現象:部分設備重啓以後,通用連接失效
1.爲何設備重啓以後通用連接會失效?
部分設備重啓以後,丟失apple-app-site-association文件,致使url與應用之間的沒法關聯。從而致使通用連接失效。
2.爲何會丟失apple-app-site-association文件?
apple-app-site-association文件丟失屬於系統級別的問題,目前沒有很好的解釋。
3.apple-app-site-association文件會從新下載嗎?
目前蘋果官方解釋是隻有在app安裝的時候纔會去請求下載驗證該文件。
「When the app is installed, the system downloads and verifies the site association file for each of its associated domains. If the verification is successful, the app is associated with the domain.」(url:developer.apple.com/reference/s…)
另外有猜想在應用更新時,也會去請求下載該文件。
(見:forums.developer.apple.com/thread/3017…,forums.developer.apple.com/thread/6972)
4.該通用連接失效時其餘應用的通用連接能生效嗎?
因爲樣本較少,就目前觀察的狀況而言,設備重啓以後的失效會致使全部應用的通用連接失效。
5.有沒有能解決的方案?
刪除並從新安裝應用能夠修復,但目前沒有確鑿的官方解釋來佐證。
在stackFlow (stackoverflow.com/questions/3…)以及 蘋果開發者論壇 (forums.developer.apple.com/message/156…)上有相似的問題,目前還沒有有解答。正在持續關注。