1. 程式人生 > 其它 >新版本微信分享sdk(1.8.3)踩坑實錄

新版本微信分享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": [
{

"appID": "Team ID.com.xxx.xxxx",
"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或者檔名