QQ分享

2017-06-22  本文已影响130人  dvlproad
腾讯开放平台管理中心 申请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常见问题(官网)

上一篇下一篇

猜你喜欢

热点阅读