QQ、微信分享適配Universal Link

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ù)更加清晰

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容