新版本微信分享sdk(1.8.3)踩坑實錄
技術標籤:三方庫使用心得
第一種
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options { return [WXApi handleOpenURL:url delegate:self]; } // 新增微信分享處理回撥 // * 注意:如果不實現這個代理方法的話,會 // * 1、微信的自檢方法只能進行到第5步並輸出universal link fail, // * 2、每次分享動作觸發時都會顯示正在連線的介面並跳轉微信再跳轉回app再跳轉微信 - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler { return [WXApi handleOpenUniversalLink:userActivity delegate:self]; }
注意:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler
這個代理方法在新版本微信分享sdk接入時,必須實現,否則每次跳轉都會有問題。
第二種
當修改bundleid後,重新修改apple-app-site-association之後,記得解除安裝上次除錯的安裝包,重新執行
接入指南:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
UniversalLink配置步驟
1.製作apple-app-site-association
檔案,並放置在準備好的連結根目錄下,讓後臺人員給你這個https的連結,一定要https的(該步驟主要時後臺人員操作)。apple-app-site-association的
內容如下:
{
"applinks": {
"apps": [],
"details": [
{
"paths": ["/sdkexample/*"]
}
]
}
}
其實就是一個json,apps陣列不用管,details裡面填入對應得appID和paths。appID就是用字首+bundleID的方式,在App Store應用後臺可以檢視此字首。paths則是可訪問APP的對應頁面路徑,APP Delegate有對應方法可以獲取, 可新增多個paths。
微信的apple-app-site-association
例項:https://help.wechat.com/apple-app-site-association
微信的例子universal link為https://help.wechat.com/sdksample/
Team ID:登入你的開發者賬號即可檢視
2. 舉例:在根下建立的目錄名為你寫的paths中sdkexample
填寫Domains, 格式為applinks:UniversalLink的形式, 如applinks:demo.xxx.com, 注意這裡必須為裸的域名,不要加https或者檔名