IOS9推出的universal link

什么是universal link?
通用鏈接是Apple在WWDC2015上為iOS9引入的一個(gè)新功能,是通過(guò)傳統(tǒng)HTTP鏈接來(lái)啟動(dòng)App的技術(shù)??梢允褂孟嗤木W(wǎng)址打開(kāi)網(wǎng)站和App。通過(guò)唯一的網(wǎng)址,就可以鏈接到App中具體的視圖,不需要特殊的schema。如果用戶(hù)沒(méi)有安裝App則鏈接到對(duì)應(yīng)的普通網(wǎng)頁(yè)。之前使用scheme進(jìn)行應(yīng)用之間的跳轉(zhuǎn)比較麻煩,需要寫(xiě)很多的scheme字段。
使用universal link需要什么條件呢?
有一個(gè)注冊(cè)的域名
通過(guò) SSL 訪(fǎng)問(wèn)域名
支持上傳一個(gè) JSON 文件到你的域名
至少 iOS 9 beta 2 版本 [下載],這很重要, 因?yàn)槿绻侵暗臏y(cè)試版本你需要做額外的操作。
至少 Xcode 7 beta 2 [下載]
開(kāi)始使用universal link?

第一步:添加域名到 Capabilities

首先, 你必須在 Xcode 的 capabilities 里 添加你的 APP 域名, 必須用 applinks: 前置它:還添加一些你可能擁有的子域和擴(kuò)展(www.domain.com, news.domain.com 等等)。

Snip20170406_1.png

這將使你的 APP 從你的域名請(qǐng)求一個(gè)特殊的 JSON 文件 apple-app-site-association。當(dāng)你第一次啟動(dòng) APP,它會(huì)從 https://domain.com/apple-app-site-association 下載這個(gè)文件。跳到下個(gè)步驟來(lái)了解如何構(gòu)建這個(gè)文件。
這將使你的 APP 從你的域名請(qǐng)求一個(gè)特殊的 JSON 文件 apple-app-site-association。當(dāng)你第一次啟動(dòng) APP,它會(huì)從 https://pre-jr1.letv.com/apple-app-site-association下載這個(gè)文件。跳到下個(gè)步驟來(lái)了解如何構(gòu)建這個(gè)文件。

第二步:創(chuàng)建apple-app-site-association文件,記住此文件不要添加后綴名,編輯完成此文件之后要上傳到我們的服務(wù)器。
編輯apple-app-site-association文件的內(nèi)容:
{
"applinks":{
"apps":[],
"details":
[
{
"appID":"4B7W4R45RH.com.letv.jr",
"paths":["/mleplatform/current/","/mleplatform/regular/"]
}
]
}
}
appID的拼接方式為:teamID+bundleID

Snip20170406_2.png

第三步:如果要處理通用鏈接的話(huà),需要在APPDelegate方法中進(jìn)行處理。

  • (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler
    {
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
    NSURL *webpageURL = userActivity.webpageURL;
    NSString *host = webpageURL.path;
    if ([host isEqualToString:@"/mleplatform/current/detail.html"]) {
    [[LFDRouter shared] openURL:[NSString stringWithFormat:@"lefinance://currentDeposit/detail?%@", webpageURL.query]];
    }else if ([host isEqualToString:@"/mleplatform/regular/project-detail.html"]) {
    [[LFDRouter shared] openURL:[NSString stringWithFormat:@"lefinance://fixedDeposit/detail?%@", webpageURL.query]];
    }
    } else if ([userActivity.activityType isEqualToString:@"com.apple.corespotlightitem"]) {
    // spotlight
    NSString *url = userActivity.userInfo[@"kCSSearchableItemActivityIdentifier"];
    if (url) {
    [[LFDRouter shared] openURL:url];
    }
    }
    return YES;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容