iOS9上的Universal Link實現(教程)

jopen 8年前發布 | 10K 次閱讀 iOS開發 移動開發

1.Universal Link

理解為蘋果官方支持deeplink就行了

2.通過點擊HTTP鏈接啟動APP

Web?iOS應用在支持Universal Link的前提下,當用戶點擊特點的鏈接時會自己起動應用

?App已經安裝的前提下:直接啟動App然后現實鏈接內容

?App沒有安裝的前提下:Web上繼續顯示鏈接內容

3.Universal Link的實現方法

首先需要準備一下內容

Web服務器

?獨立的domain

?SSL證書

?被簽名的JSON文件

iOS應用

?iOS9以上

?Xcode 7?iOS 9 SDK

?Capabilities

?AppDelegate的代理設置

3.1 Capabilities的設置

在Capabilities的設置中,設置`Associated Domains’的Domains內容

例:https://www.非死book.com/ -> applinks:非死book.com

注意:對于subdomain,www的有無要仔細考慮一下

3.2 apple-app-site-association文件的配置

apple-app-site-association文件一定要放在服務器的根目錄下!!!!!!

首先要準備一下apple-app-site-association文件

{
  "applinks": {
    "apps": [],
    "details": {
      "TBEJCS6FFP.com.domain.App": {
        "paths":[ "*" ]
      }
    }
  }
}

paths中的內容為對應App啟動的鏈接路徑

全路徑的時候使用“*”。

特定位置的時候需要指定具體內容,

["/wwdc/news/", /videos/wwdc/2015/*]

TBEJCS6FFP.com.domain.App這部分使用的是你的TeamID和Bundle Identifier

3.3 對apple-app-site-association文件的簽名

我使用的是以下的方法對apple-app-site-association進行簽名。

cat apple-app-site-association-unsigned.js | openssl smime -sign -inkey g01-server.key -signer g01-server.crt -certfile  g01-dvcacert.cer -noattr -nodetach -outform DER > apple-app-site-association

3.4 App對應的開發

在 AppDelegate.m文件中添加以下代碼

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
    NSLog(@"continueUserActiity enter");
    NSLog(@"\tAction Type : %@", userActivity.activityType);
    NSLog(@"\tURL         : %@", userActivity.webpageURL);
    NSLog(@"\tuserinfo :%@",userActivity.userInfo);

    NSLog(@"continueUserActiity exit");
    restorationHandler(nil);

    NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    NSArray *cookies = [sharedHTTPCookieStorage cookiesForURL:userActivity.webpageURL];

     NSLog(@"COOKIE{name: %@", cookies);
    return true;
}

如代碼所示,我們可以獲取到跳轉鏈接的一些基本信息

URL內容,ActionType等都是可以獲取并且在代碼中進行修改的。

4.結果

通過以上的配置后,一個基礎的Universal Link應用就開發結束了

點擊對應的鏈接我們可以看到自己的App被成功啟動

5.一些事實

相同的服務器不同的目錄結構可能導致Universal Link不啟動

應用和json文件同時更新時,json更新的部分可能會沒有效果

如果需要使用我的服務器和app進行測試的同時可以私信我。

 

來自: http://www.cnblogs.com/dinghing154/p/5111487.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!