Universal Links實用教程

Universal Links(通用鏈接)

若是你的app支持通用連接,那麼iOS 9用戶點擊連接到你的網站,能夠準確地定位到到手機安裝的你的APP應用程序,而不經過Safari去實現。若是用戶手機沒有安裝你的APP應用程序,經過通用鏈接能利用一個連接到你的網站,而不用經過在Safari打開你的網站。web

通用連接給你以下幾個關鍵的好處

1. Unique.惟一性

不像自定義URL schemes協議頭那樣,通用的連接不能被其餘應用程序聲稱,由於他們使用標準HTTP或HTTPS連接你的網站。json

2. 安全

若是iOS用戶安裝了你的應用,應用程序啓動(不是登錄)時就會檢查你上傳到web服務器json文件(apple-app-site-association),以確保你的網站容許應用程序打開url。只有你能建立和上傳這個文件,因此專門配置的網站與你的應用程序鏈接之間是安全的。數組

3. 方便,自由性

觸發通用鏈接時,若是用戶沒有安裝你的應用程序,點擊這個通用鏈接會打開Safari加載你的網站內容,這是用戶所指望。安全

4. 簡單

只需一個URL就能根據用戶有沒有安裝你的APP,決定加載你的網站仍是你的APP應用程序。bash

5. 私有性

其餘應用程序能夠與你的應用程序通訊,而不須要知道你的應用程序是否在用戶手機中安裝。服務器

添加支持通用連接的步驟

1.建立和上傳apple-app-site-association文件

文件內容以下:app

{
"applinks": {
        "apps": [],
        "details": [
            {
                "appID": "teamID.bundleId",
                "paths": ["/mall/app_download/app","/app_download/app"]
            },
            {
                "appID": "teamID.bundleId",
                "paths": ["/path/app_download/app","/app_download/app","*"]
            }
        ]
    }
}
複製代碼

注意事項以下:dom

  1. details裏面的內容能夠爲數組,也就是能夠配置多個應用的Universal Links
  2. apple-app-site-association`文件名千萬不能寫錯啊,沒有後綴
  3. appID 的 格式爲 teamID.bundleId形式
  4. paths配置,實際上就是限制哪些路徑能夠喚醒app,哪些路徑不能喚醒app。一下爲path規則:
    • 使用*配置,則整個網站均可以使用
    • 使用特定的URL,例如/wwdc/news/來指定某一個特殊的連接
    • 除了使用*來匹配任意字符,你也可使用 ?來匹配單個字符,你能夠在路徑當中結合這兩個字符使用,例如 /foo/*/bar/201?/mypage
    • 配置的paths路徑,是區分大小寫的

2.將這個文件上傳到你的服務器,能夠將這個文件放到服務器的根目錄下,也能夠放到.well-known這個子目錄下。

注意事項以下:網站

  • 確保使用https://yourdomain.com/apple-app-site-association這個連接能夠訪問到,yourdomain.com爲你的服務器域名。ui

  • 也可使用蘋果的驗證網站,驗證文件是否能被蘋果請求到。若是是未上線的應用,使用驗證網站時可能出現以下提示:

  • 出現該提示爲apple-app-site-association文件配置正確。

  • 出現404錯誤碼提示,則爲apple-app-site-association文件未上傳成功,或者使用https://yourdomain.com/apple-app-site-association路徑沒法訪問。

3.配置app,而後在app裏面添加代理方法

  1. app IDs 配置

  1. 項目配置

    在項目的Capablities中開啓Associated domains,以下圖:

注意事項:

  • domains能夠添加多個,前綴必須爲applinks:applinks:後爲你的服務器的域名。
  • 服務器必需要支持https。
  1. 代碼接收Universal Links喚醒

    在appdelegate中實現下面這個方法,當使用Universal Links喚醒app時就執行這個方法。

    -(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
    {
        if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
            NSURL *webUrl = userActivity.webpageURL;
            if ([webUrl.absoluteString containsString:@"?"]) {
                
            }
        }
        return YES;
    }
    複製代碼
  2. 驗證以上配置

    快捷驗證,在備忘錄中輸入https://yourdomain.com/apple-app-site-association,長按這個連接,出現下圖提示則配置成功。

相關文章
相關標籤/搜索