你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS9上的Universal Link實現(教程)

iOS9上的Universal Link實現(教程)

編輯: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.facebook.com/ -> applinks:facebook.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進行測試的同時可以私信我。

     

    1. 上一頁:
    2. 下一頁:
    蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
    Copyright © Ios教程網 All Rights Reserved