Universal Link的實現(xiàn)不做介紹, 這里只介紹SDK層的變化
更換SDK的注冊方法
- 微信分享:
替換原注冊方法為:
[WXApi registerApp:kLibAppIDWeiXin];
↓
[WXApi registerApp:kLibAppIDWeiXin universalLink:kUniversalLink];
- QQ分享:
[[TencentOAuth alloc] initWithAppId:kLibAppIDQQ andDelegate:self];
↓
NSString *universalLink = [NSString stringWithFormat:@"%@qq_conn/%@", kUniversalLink, kLibAppIDQQ];
[[TencentOAuth alloc] initWithAppId:kLibAppIDQQ enableUniveralLink:NO universalLink:universalLink delegate:self];
注意 enableUniveralLink 這個參數(shù)
默認(rèn)為NO,第三方應(yīng)用是否將sdk和手機QQ的交互方式切換為UniversalLink方式,啟用后則在iOS9及以上的系統(tǒng)都會生效UniversalLink方式;否則,默認(rèn)僅在iOS13及以上的系統(tǒng)生效UniversalLink方式。
實現(xiàn)回調(diào)
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
{
// Demo處理手Q UniversalLink回調(diào)的示例代碼
if([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL *url = userActivity.webpageURL;
if(url && [TencentOAuth CanHandleUniversalLink:url]) {
[QQApiInterface handleOpenURL:url delegate:[QQSahreObject sharedManager]];
[QQApiInterface handleOpenUniversallink:url delegate:[QQSahreObject sharedManager]];
return [TencentOAuth HandleUniversalLink:url];
}
}
return [WXApi handleOpenUniversalLink:userActivity delegate:[WeChatObject sharedManager]];
}
原協(xié)議方法不要去掉, 保留
代碼來源于SDK demo, 可以重構(gòu)下, 保證代碼的可讀性, 使業(yè)務(wù)更加清晰