iOS开发 --- UIWebView替换之友盟分享SDK更新(QQ未识别应用问题)

 最近在更新友盟分享SDK,分享给QQ好友后,会显示“未识别应用”。所以就记录下这次更新中遇到的问题及需要注意的地方。(分享给微信好友后,会显示“未验证应用”的问题已修复)

官方通知 

iOS开发 --- UIWebView替换之友盟分享SDK更新(QQ未识别应用问题)_第1张图片

版本要求:

iOS9之后 

 配置Universal Links

1,文件内容

{ "applinks": {
   "apps": [],
   "details": [ {
        "appID": "9JA89QQLNQ.com.apple.wwdc",
        "paths": [ "/wwdc/news/", "/videos/wwdc/2015*", "/qq_conn/222222/*" ]
      }, {
        "appID":"ABCD1234.com.apple.wwdc",
        "paths": [ "*", "/qq_conn/222222/*" ]
      } ] }
}
{ "applinks": {
   "apps": [],
   "details": [ {
        "appID": "9JA89QQLNQ.com.apple.wwdc",
        "paths": [ "/wwdc/news/", "/videos/wwdc/2015*", "/qq_conn/222222/*" ]
      }] 
  }
}
  • paths 中需添加"/qq_conn/{APPID} /* " ,{APPID}为互联当前应用的appid

2,文件路径,二选一(不带任何后缀),上传apple-app-site-association文件。

          https:// {host} /apple-app-site-association 

          https:// {host} /.well-known/apple-app-site-association

根目录下即:https://www.ABCD.com/apple-app-site-association,

.well-known目录下即:https://www.ABCD.com/.well-known/apple-app-site-association。

3,填写Universal Link 

QQ互联平台注册APP信息(注意,不是腾讯开放平台,两码事)
https://connect.qq.com/manage.html#/

腾讯开放平台  QQ开放平台(QQ互联)

 

创建、填写及校验UniversalLinks

iOS开发 --- UIWebView替换之友盟分享SDK更新(QQ未识别应用问题)_第2张图片

验证完成

iOS开发 --- UIWebView替换之友盟分享SDK更新(QQ未识别应用问题)_第3张图片

AppDelegate配置

UniversalLink : https://www.abcd.com/qq_conn/xxxxxxxx8311

#import 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // UMConfigure 通用设置,请参考SDKs集成做统一初始化。
    // 以下仅列出U-Share初始化部分
    // U-Share 平台设置
    [self confitUShareSettings];
    [self configUSharePlatforms];
    // Custom code
    return YES;
}
-(void)confitUShareSettings{
    //配置微信平台的Universal Links
    //微信和QQ完整版会校验合法的universalLink,不设置会在初始化平台失败
    [UMSocialGlobal shareInstance].universalLinkDic = @{
        @(UMSocialPlatformType_WechatSession):TCUMUnivernalLink,
        @(UMSocialPlatformType_QQ):TCUMQQUnivernalLink};
}

-(void)configUSharePlatforms{
    /* 设置微信的appKey和appSecret */
    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:TCUMShareAppID appSecret:TCUMShareAppSecret redirectURL:TCUMShareAppRedirectURL];
    
    
    /* 设置QQ的appKey和appSecret */
    
    /* 设置分享到QQ互联的appID
     * U-Share SDK为了兼容大部分平台命名,统一用appKey和appSecret进行参数设置,而QQ平台仅需将appID作为U-Share的appKey参数传进即可。
     */
    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:TCUMShareQQAppID appSecret:nil redirectURL:TCUMShareAppRedirectURL];
    
    
}

 设置系统回调

// 支持所有iOS系统
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    //6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响
    BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation];
    if (!result) {
         // 其他如支付等SDK的回调
    }
    return result;
}
//1.仅支持iOS9以上系统,iOS8及以下系统不会回调

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options
{
    //6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响
    BOOL result = [[UMSocialManager defaultManager]  handleOpenURL:url options:options];
    if (!result) {
        // 其他如支付等SDK的回调
    }
    return result;
}
//2.支持目前所有iOS系统
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];
    if (!result) {
        // 其他如支付等SDK的回调
    }
    return result;
}
//3,设置Universal Links系统回调

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler
{
    if (![[UMSocialManager defaultManager] handleUniversalLink:userActivity options:nil]) {
        // 其他SDK的回调
    }
    return YES;
}

Universal Link 相关验证(目前这个验证我还没有验证成功,不知道为什么??

在 iOS 设备中的备忘录中输入 APP 能识别的链接,然后直接点击此链接,就会直接跳转到你的 app 了。或是长按,在弹出的菜单中出现在 “XXX”中打开,这也代表着成功。

或是你将要测试的网址在 Safari中打开,在出现的网页上方下滑,可以看到有在“XX”应用中打开

当点击某个链接,直接可以进我们的 app 了,但是我们的目的是要能够获取到用户进来的链接,根据链接来展示给用户相应的内容。

分享验证

卸载App重新安装,分享到QQ好友。“未识别应用”消失!!!

相关文档

https://wiki.connect.qq.com/universal-links适配faq

https://wiki.connect.qq.com/ulink适配通知

微信/QQ 分享最新集成 (UniversalLink)2020版

QQ、微信分享适配Universal Link

iOS之适配苹果Universal Links 和升级友盟的QQ和微信分享艰难之路

你可能感兴趣的:(iOS,第三方库/工具)