中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS 通用鏈接(Universal Link)配置詳解

發布時間:2020-08-23 00:48:38 來源:腳本之家 閱讀:487 作者:June Villa 欄目:移動開發

iOS 通用鏈接(Universal Link)配置

什么是通用鏈接?

通用鏈接是iOS9推出的一項新功能,如果你的應用(app)支持通用鏈接(Universal Link)之后,iOS用戶能夠在點擊網頁的鏈接的時候無縫的重定向到已經安裝的app,不需要額外的任何操作。如果沒有安裝對應的app,那么點擊鏈接會使用Safari打開網頁。在iOS9以前,對于各種瀏覽器,Safari中喚醒app的需求,我們通常是只能使用scheme的方式。

為什么要突然改用通用鏈接的配置方式?

我們的項目中喚起第三方app一般是通過配置對應的URL Scheme的方式使用的,微信SDK的最新版本openSDK1.8.6 由于蘋果iOS 13系統版本安全升級,為此openSDK在1.8.6版本進行了適配。 1.8.6版本支持Universal Links方式跳轉,對openSDK分享進行合法性校驗,提升使用過程中的安全性。

要求在注冊微信appid時,必須要傳入universalLink,以前的方法在舊版本仍然可使用。所以就開始研究通用鏈接(Universal Link)的配置

@interface WXApi : NSObject

/*! @brief WXApi的成員函數,向微信終端程序注冊第三方應用。
 *
 * 需要在每次啟動第三方應用程序時調用。
 * @attention 請保證在主線程中調用此函數
 * @param appid 微信開發者ID
 * @param universalLink 微信開發者Universal Link
 * @return 成功返回YES,失敗返回NO。
 */
+ (BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLin

如何配置通用鏈接?

1、創建json格式的一個空文件(取名必須為apple-app-site-association,并且沒有后綴)

iOS 通用鏈接(Universal Link)配置詳解

  • 這里的appID是指:TeamID+BundleId的組成(例:9JA89QQLNQ.com.apple.test)(TeamID可以在開發者賬號里面查看,BundleId是項目的Bundle Identifier)。
  • 這里的paths是指:是設置允許的路徑列表,可以是一個也可以是多個,最簡單的方式是使用“*”,通配符,表示允許該域名下的任意路徑。(注意:paths中的大小寫是敏感的,一定要一一對應)

2、上傳apple-app-site-association文件(這里就能拿到app中配置需要的域名)

(1)將apple-app-site-association文件發給服務器端的同事,讓他上傳到域名的根目錄下或者.well-known的子目錄下(這里的域名必須要是可訪問的域名,由服務器端的同事給到)。

(2)Web server需要支持https,客戶端通過https來訪問,并且不支持重定向。

3、在app中處理通用鏈接

(1)添加對應的域名(上面知道的域名)到Capabilities

iOS 通用鏈接(Universal Link)配置詳解

在項目里面定位到Capabilities,找到Associated Domains,點擊允許按鈕,在Domains中添加對應的域名。(Domains中的域名必須是使用applinks開頭,然后輸入自己的域名即可。注意:當app第一次啟動之后,會自動從你自己的域名目錄下下載這個apple-app-site-association文件。

注:這里可能會遇到一個錯誤就是你的App ID中并沒有允許使用Associated Domains,所以需要進入開發者中心,編輯App ID允許Associated Domains,并且重新生成對應的簽證文件并下載安裝。在最新xcode11,添加了該項,開發者賬號該appId下自動打開

iOS 通用鏈接(Universal Link)配置詳解

(2)實現AppDelegate里支持通用鏈接的實現方法

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
	//自己的實現代碼
	
  return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}

這里如果是從舊版更新WechatOpenSDK1.8.6版本的話,需要在這個里面調用微信里的這個方法,并且在Xcode中,選擇你的工程設置項,選中“TARGETS”一欄,在 “info”標簽欄的“LSApplicationQueriesSchemes“添加weixin和weixinULAPI,可通過微信開放平臺的接入文檔步驟一步步進行修改或添加。

iOS 通用鏈接(Universal Link)配置詳解

注:這里的weixinULAPI注意大小寫,我之前是添加了一個weixinulapi小寫的進去,結果都注冊失敗,一直沒找到原因,直到我調用微信打印log的方法,才知道是沒添加到weixinULAPI這個schemes,大小寫沒區分

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台中市| 清水县| 肇庆市| 上虞市| 会理县| 杨浦区| 宜昌市| 汝南县| 永顺县| 诸城市| 玛纳斯县| 青海省| 西林县| 惠州市| 开鲁县| 怀仁县| 萨迦县| 宾阳县| 凤城市| 洱源县| 永新县| 印江| 新蔡县| 武安市| 郴州市| 绥滨县| 洛南县| 祁阳县| 仁寿县| 蚌埠市| 阳山县| 扎囊县| 孟村| 深水埗区| 甘南县| 闽清县| 自贡市| 东兴市| 广东省| 汉川市| 高唐县|