這兩天在弄分享,從第三方應用或者瀏覽器打開本身app的東西html
傳統的方式是經過URL Scheme的方式,可是iOS9之後又出了新的更完美的方式Universal Links。ios
傳統的URL Scheme方式微信內置的瀏覽器都是封鎖了全部它投資的公司以外的,只有白名單的才能夠(好比京東,B站,等)。Universal Links也不能算是完美的實現,可是已是目前爲止最好的了。web
就說一下這個東西的介紹,就像在windows裏面爲某一類型的文件添加了默認的打開方式。只不過這個文件類型變成了某一個「域名」(並不是徹底是某個域名,或者能夠稱之爲某段有特殊意義的URL)的URL。這個東西只能在iOS9之後纔有。json
具體的表如今在iOS系統中,當你郵件或者短信或者其餘方式收到含有某段「特定標示」的URL的時候若是安裝有你的app,就能夠直接默認調用app去打開,不然只能調用你的Safari去打開。具體到微信裏面就是打開了分享的H5,右上角更多-在Safari中打開,能夠直接調用你的app去打開這個URL。具體在app的中怎麼展現相關的邏輯就看你的了。windows
具體介紹的相關文章:api
蘋果檢測連接有效性:https://search.developer.apple.com/appsearch-validation-tool/服務器
很棒的一個英文的步驟文章:https://blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9微信
相關的文章:http://www.jackivers.me/blog/2015/9/17/list-of-universal-link-ios-9-appsapp
http://tech.glowing.com/cn/deferred-deep-linking-and-branch-sdk-in-ios/(URL Scheme和Universal Links優缺點介紹的很棒,這個團隊的技術博客也很不錯哦)
http://www.cocoachina.com/ios/20150911/13321.html(裏面的那個運行流程的總結圖很不錯)
具體的步驟就再也不贅述了,由於不管是官方文檔,仍是其餘人寫的文章都很棒了,我就說一下實際開發中可能遇到的的坑。
1.注意拼寫那個json文件的時候,應該是你的開發者中心,Identifiers---App IDs--- 應用的證書名字(bundle id全部對應的那個)---Prefix
.英文的點號,再跟上你的bundle id。而且文件的名字必須爲「apple-app-site-association」,不能本身私自定義。用瀏覽器打開https://<domain>/apple-app-site-association文件,看一下成功否就能夠了。
2.生成後的json文件必定是要放到你的那些網頁所在的站點的目錄下面的HTTPS web server根目錄下面。好比你的網站是https://www.google.com(全部的網頁都是以這個開頭的),而後你應用的地址baseurl是https://api.google.com,其實你應該放在www的那個HTTPS web server根目錄下面。而後過兩三分鐘吧,就用蘋果有效性檢測工具的那個去試一下,找一個你要分享出去的h5連接試一下,只要不出錯,出來不少的相關信息就能夠了(就跟用這個URL測試出來的結果同樣就能夠了https://www.yelp.com/biz/michael-winnetka)。
3.在工程的設置Associated Domains的時候,必定先要去蘋果的開發者中心打開你的應用證書Associated Domains Enabled。而後記得更新你的證書關聯的東西,而後更新本地的證書。才能夠打開工程的Associated Domains。記住填寫連接的時候是applinks:<domain>。這個<domain>就是第1點中調試通的那個(若是你的應用的api的和頁面的不區分服務器就同樣了)。
4.而後編譯你的應用。若是你在短信中含有相似的https://<domain>?a=1&b=2 已經經過了後,直接長按會出來「在「XXX」中打開」就說明成功了。能夠去微信微博等其餘的地方去看看了。