天天看點

iOS開發 - 關于微信分享後,提示“未驗證應用”的解決辦法,配置 Universal Link

配置 Universal Link

建立一個json檔案,格式固定,以下配置為此域名下所有連結,均跳轉至app。Ps: 特殊情況會出現問題。

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "teamID.bundleID",
        "paths": [
          "*"
          ]
      }
    ]
  }
}
           

此處為本人剛剛遇到的特殊情況流程:

在微信公衆号商城中,購買商品。支付清單中,使用支付寶支付,由于不能直接調起支付寶,是以需要在Safari中打開。此時跳轉到Safari後(此處預設已經安裝了該商城的app),并不會詢問打開支付寶,而是會直接調起app,并不會進行支付詢問。

解決以上情況的方法為,确定具體的通用路徑,配置如下:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "teamID.bundleID",
        "paths": [
          "/linkPath/*", "/wechatAppId"
          ]
      }
    ]
  }
}
           

linkPath為app分享出去的路徑,後面需要接通配符“*”。

加入wechatAppId的目的是微信分享後,能正常傳回app。 因為如果項目中,沒有微信分享的話,可以将wechatAppId去掉。

Ps: wechatAppId後面,不需要寫通配符“*”。

配置檔案中的details資料, 其中的appID對應的value為teamID 和 bundleID。配置時用“.”拼接,如上述代碼teamID在前,bundleID在後。上述兩個ID,可以在蘋果的開發者網站内找到,具體位置如下圖,順便将Associated Domains選中。

iOS開發 - 關于微信分享後,提示“未驗證應用”的解決辦法,配置 Universal Link

編輯完成後,導出檔案,并命名為 apple-app-site-association。若有擴充名,測需隐藏擴充名。如下圖:

iOS開發 - 關于微信分享後,提示“未驗證應用”的解決辦法,配置 Universal Link

生成此檔案後,需将此檔案,放至App所用域名的根目錄下。

配置項目

上面的操作我們已經開啟了Associated Domains,這裡直接配置就行了,如下圖:

applinks:+ App的域名,例如:applinks:baidu.com

iOS開發 - 關于微信分享後,提示“未驗證應用”的解決辦法,配置 Universal Link

在plist檔案中,新增weixinULAPI,如下圖:

iOS開發 - 關于微信分享後,提示“未驗證應用”的解決辦法,配置 Universal Link

在AppDelegate中,添加如下方法:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        return WXApi.handleOpenUniversalLink(userActivity, delegate: self)
    }
           

至此,Universal Links 配置完成。

檢測是否配置成功

将App删除,重新編譯完成,安裝到手機後。打開Safari,輸入App所使用的域名,然後下拉一下,如果發現界面頂部有App的入口,點選後,可跳轉到App,則表示配置成功。如下圖:

iOS開發 - 關于微信分享後,提示“未驗證應用”的解決辦法,配置 Universal Link

配置微信開發平台資訊

需将App域名添加到微信開放平台的資訊中,如: https://baidu.com/

特别注意:

1. 此處域名必須支援https

2.首次發起分享時,會出現二次跳轉的行為,具體流程:App拉起微信 - 出現“正在連接配接”界面 - 傳回App - 重新打開微信。這是新的驗證流程,每個使用者首次使用時都會出現上述跳轉。(如同一使用者多次使用分享均出現跳轉,請檢查Universal Links配置 )

繼續閱讀