Universal Links通用鏈接

吸睛圖

Universal Links


做App開發(fā)經(jīng)常需要將某個頁面分享到微信或者其他社交平臺刨沦,也經(jīng)常會有這么一個需求:如果安裝了app就從app打開缤底,并跳轉(zhuǎn)到相應(yīng)的產(chǎn)品頁敏释,如果沒有安裝app骂澄,就跳出h5頁面癣疟。一般從瀏覽器挣柬、Safari中喚醒APP都是使用scheme,但是微信比較霸氣睛挚,直接禁用了scheme邪蛔。因此只能使用別的方式。

Unibersal Links就是為此而生扎狱。它是IOS9推出的一項功能侧到,可以通過http鏈接來啟動喚醒自己的APP。因為是IOS9(及以后)的系統(tǒng)服務(wù)淤击,因此微信等社交平臺也沒有辦法阻止匠抗。

官方文檔地址:文檔

example


好不好用先看看別人的app。
1污抬、下載app

2汞贸、app-site-association file

3、example Universal Link

4印机、自己寫個網(wǎng)頁矢腻,加個a標(biāo)簽,href = http://www.opentable.com/restaurant/profile/33160?shareReferrer=ios-share 耳贬,然后在微信中打開你的網(wǎng)頁踏堡,點擊a標(biāo)簽就跳轉(zhuǎn)到別人的app中去。

配置Universal Links(客戶端)


  • 首先咒劲,你的服務(wù)器必須支持https顷蟆,并且你必須有一個域名。

因為我使用的是騰訊旗下的域名解析腐魂,因此我從騰訊云申請ssl證書帐偎,免費ssl證書申請地址,申請速度很快10分鐘就審批下來蛔屹。

  • 需要在開發(fā)者中心的AppID中開啟Universal Links削樊。
開啟Universal Links

然后重新配置下載描述文件(這步應(yīng)該都會,這里只截圖開發(fā)的描述文件,發(fā)布版的也一樣要配置)

你的配置文件該不會都是xCode自動生成配置的吧

然后下載下來雙擊漫贞,使其在xCode生效甸箱。

  • 在你的應(yīng)用中配置Associated Domains,并且用applinks:為前綴迅脐。
配置Associated Domains

順便我們也來看看剛才下載的描述文件有沒有配置好芍殖。

查看下描述文件
  • 創(chuàng)建一個名字為apple-app-site-association的文件,并放在服務(wù)器網(wǎng)絡(luò)的根目錄下谴蔑。注意豌骏,這個文件沒有后綴!而且名字也不能改隐锭。
    比如:

    {
    "applinks": {
    "apps": [],
    "details": [
    {
    "appID": "GQUVXPG592.com.nuomi.test",
    "paths": ["/hello/","/","/"]
    }
    ]
    }
    }

其中GQUVXPG592是teamId窃躲,可以在你的開發(fā)者中心查看到,com.nuomi.test是你AppID钦睡。paths就是URL路徑支持通配符蒂窒。具體怎么寫,還是查看文檔吧赎婚。

apple-app-site-association
  • 上傳apple-app-site-association文件到根補錄刘绣。

怎么才是判斷位置是否對呢?訪問https://你的域名/apple-app-site-association,如果能看見json或者下載到文件apple-app-site-association挣输,那么就是放對了纬凤。

  • 在appDelegate中編寫代碼

如果上面都配置對了,那么在點擊對應(yīng)的鏈接就會響應(yīng)application:continueUserActivity:restorationHandler:方法撩嚼,然后在這個方法里面根據(jù)傳進來的參數(shù)和路徑跳轉(zhuǎn)到不同的界面停士。

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
        if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]){
    
        NSURL *url = userActivity.webpageURL;
        NSString * msg = url.absoluteString;
    
        UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"Universal Links測試" message:[NSString stringWithFormat:@"url:%@",msg] delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];
        [alert show];
    }
    
    return YES;
}

服務(wù)器配置https


還是老規(guī)矩,服務(wù)器端的內(nèi)容因為不是重點完丽,因此只會簡單得點一下恋技。畢竟在配置服務(wù)器方面我也是摸爬滾打配出來的,網(wǎng)上資料很多逻族,可以自行參考蜻底。

我的服務(wù)器采用apache,因此就用apache為例子聘鳞。

  • 首先薄辅,準(zhǔn)備好證書。
    我的證書是在騰訊云下載到的抠璃,如圖(ca文件站楚,公鑰證書,私鑰):
證書文件
apache證書

我稍微改了下名字(順序不變):

改名證書
  • 找到你的apache在服務(wù)器中的位置搏嗡,并找到httpd.conf文件窿春。

我的httpd.conf在"apache/httpd-2.2.24/conf"下拉一。

找到Include conf/extra/httpd-ssl.conf并把前面的#去掉。如果沒有在最后一行自己加旧乞。

  • 修改httpd-ssl.conf文件蔚润。

我的httpd-ssl.conf文件在"apache/httpd-2.2.24/conf/extra"下,如果沒有有可能你的apache不支持ssl,具體的可以網(wǎng)上尋找解決方案良蛮。

找到<VirtualHost _default_:443>或者差不多的標(biāo)簽抽碌,找到SSLCipherSuite xxxxx修改為SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4,找到SSLProtocol xxxxx修改為SSLProtocol TLSv1 TLSv1.1 TLSv1.2使其支持TLSv1.2。

然后把我們剛才的證書傳到服務(wù)器上决瞳,并在httpd-ssl.conf修改證書文件路徑到對應(yīng)文件下,比如:

SSLCertificateFile "/www/wdlinux/httpd-2.2.24/conf/server.crt"

SSLCertificateKeyFile "/www/wdlinux/httpd-2.2.24/conf/server.key"

SSLCertificateChainFile "/www/wdlinux/httpd-2.2.24/conf/server-ca.crt"

最后ssh到你的服務(wù)器,然后service httpd restart左权。

ps:httpd-ssl.conf中 DocumentRoot "xxxxxxxx"就是你網(wǎng)站的根目錄皮胡。

現(xiàn)在可以通過瀏覽器用https訪問了,如果訪問成功赏迟,那么恭喜你適配成功了屡贺,如果不成功。锌杀。甩栈。再找教程吧。

配置成功

檢驗


Universal Links通用鏈接其實到目前為止就已經(jīng)全部實現(xiàn)了糕再,除了服務(wù)器配置不熟外量没,其他的還是很簡單的。下面只要測試下是否能在微信中打開突想。
比如我的apple-app-site-association文件掛在cs.pzhss.cc域名下殴蹄,那么只要在rt.pzhss.cc(可以用http,不用https)的頁面中隨便加個a鏈接<a >測試</a>然后在微信的瀏覽器中打開,點擊a鏈接就能跳轉(zhuǎn)到自己的app中來猾担。

測試

或者在備忘錄中打鏈接袭灯,然后長按,彈出在”xxx中打開“就算配置成功了绑嘹。

IMG_3569.PNG
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末稽荧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子工腋,更是在濱河造成了極大的恐慌姨丈,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夷蚊,死亡現(xiàn)場離奇詭異构挤,居然都是意外死亡,警方通過查閱死者的電腦和手機惕鼓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門筋现,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事矾飞∫慌颍” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵洒沦,是天一觀的道長豹绪。 經(jīng)常有香客問我,道長申眼,這世上最難降的妖魔是什么瞒津? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮括尸,結(jié)果婚禮上巷蚪,老公的妹妹穿的比我還像新娘。我一直安慰自己濒翻,他們只是感情好屁柏,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著有送,像睡著了一般淌喻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雀摘,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天裸删,我揣著相機與錄音,去河邊找鬼届宠。 笑死烁落,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的豌注。 我是一名探鬼主播伤塌,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼轧铁!你這毒婦竟也來了每聪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤齿风,失蹤者是張志新(化名)和其女友劉穎药薯,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體救斑,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡童本,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了脸候。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片穷娱。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡绑蔫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出泵额,到底是詐尸還是另有隱情配深,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布嫁盲,位于F島的核電站篓叶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏羞秤。R本人自食惡果不足惜缸托,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瘾蛋。 院中可真熱鬧嗦董,春花似錦、人聲如沸瘦黑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幸斥。三九已至,卻和暖如春咬扇,著一層夾襖步出監(jiān)牢的瞬間甲葬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工懈贺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留经窖,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓梭灿,卻偏偏與公主長得像画侣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子堡妒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容