QQ分享

作者: dvlproad | 来源:发表于2017-06-22 00:11 被阅读130次
    腾讯开放平台管理中心 申请QQ分享时需要填写的URL schema

    当在 iOS app 中集成qq的分享功能时,需要申请填写以下内容:


    0B37079C-E477-49A2-92F9-9FACEC74C635.png

    这个URL schema是干什么用的呢?
    答:设置这个URL schema是为了保证在分享完成或取消的时候自己的app 能被唤起。

    那么其中URL schema的值这里又是需要填写多少呢,是要怎么获得呢?
    答:其获得方式,是通过将申请的qq app id 转换为相应的 URL Schema得来的。


    URL schema的获取方法.png

    将app id转换为 URL schema 的方法如下:


    将app id转换为 URL schema 的方法

    最终这里要填写的url schema 格式如下:

    "QQ" + 腾讯QQ互联应用appId 转换成十六进制 (不足8位前面补0). 例如:QQ05FA957C
    附:将十进制的app id 转换为十六进制的方法:
    方法①:在命令行中输入以下命令:
    echo 'ibase=10;obase=16;您的腾讯QQ互联应用Id'|bc
    方法②:点击进入10进制转换16进制

    这样我们就完成了申请内容的填写了。

    那是不是就等于我们的app就已经拥有了分享的功能了 呢?

    答:还要在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes,
    ①设置Xcode的url scheme格式为之前在QQ互联后台填的的URL schema中“QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FC5B14”。
    ②并 额外设置 url schemes 的格式为"tencent"+腾讯QQ互联应用appId,例如“tencent5FC5B14”
    如果 URL schemes 配置错误,则分享完成后无法返回应用

    解释如下:
    qq比较麻烦点,需要两个 URL schemes
    1、QQ+appID(注意:这里的appID填由原本的10进制转换过去的16进制值)
    2、tencent+appID(注意:这里的appID填原本的10进制的,而不是16进制,否则分享成功后,无法返回)

    40A8E65E-8056-4DCE-BDD4-153FC250AE06.png

    其他可参考内容:腾讯开放平台移动应用IOS平台里URL,schema填写,还有这个Boundle,ID,,还有AppStore,ID

    问题1:-canOpenURL: failed for URL: "mqq://" - error: "This app is not allowed to query for scheme mqq"
    346AD822-4B73-494C-8BAD-DAA1BA717399.png

    一、问题描述
    真机调试时,使用MonkeyKing注册微信、支付宝等时会报 canOpenURL: failed for URL: "weixin://" - error: "The operation couldn’t be completed. (OSStatus error -10814.)

    二、解决办法
    在真机上下载注册时对于的APP应该,注册微信,就下载微信应用,注册支付宝就下载支付应用,就OK了。

    iOS开发-canOpenURL: failed for URL: "mqq://" - error: "This app is not allowed to query for scheme mqq

    【iOS开发】canOpenURL: failed for URL

    常见问题

    问题2001
    Domain=UMSocialPlatformErrorDomain Code=2001 "(null)" UserInfo={message=Url is not value image url}
    此问题在设置了Info.plist里NSAppTransportSecurity下的NSAllowsArbitraryLoads值为为YES后还是会出现。
    
    
    解决方法:将图片地址改为https的地址。如https://cdn.pixabay.com/photo/2015/07/09/20/06/stork-838424_1280.jpg
    
    - (void)shareImageAndTextToPlatformType:(UMSocialPlatformType)platformType
    {
        //创建分享消息对象
        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
        
        //设置文本
        messageObject.text = @"社会化组件UShare将各大社交平台接入您的应用,快速武装App。";
        
        //创建图片内容对象
        UMShareImageObject *shareObject = [[UMShareImageObject alloc] init];
        //如果有缩略图,则设置缩略图
        shareObject.thumbImage = [UIImage imageNamed:@"icon"];
        [shareObject setShareImage:@"https://cdn.pixabay.com/photo/2015/07/09/20/06/stork-838424_1280.jpg"];
        
        //分享消息对象设置分享内容对象
        messageObject.shareObject = shareObject;
        
        //调用分享接口
        [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
            if (error) {
                NSLog(@"************Share fail with error %@*********",error);
            }else{
                NSLog(@"response data is %@",data);
            }
        }];
    }
    
    

    分享失败检查的步骤:
    ①在该平台开发者中心上,检查该对应平台信息是否是否注册
    ②在代码中添加平台支持
    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:KEY_QQ appSecret:nil redirectURL:@"http://mobile.umeng.com/social"];

    附:U-Share常见问题(官网)

    相关文章

      网友评论

          本文标题:QQ分享

          本文链接:https://www.haomeiwen.com/subject/uurxcxtx.html