腾讯开放平台管理中心 申请QQ分享时需要填写的URL schema
当在 iOS app 中集成qq的分享功能时,需要申请填写以下内容:
这个URL schema是干什么用的呢?
答:设置这个URL schema是为了保证在分享完成或取消的时候自己的app 能被唤起。
那么其中URL schema的值这里又是需要填写多少呢,是要怎么获得呢?
答:其获得方式,是通过将申请的qq 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进制,否则分享成功后,无法返回)
其他可参考内容:腾讯开放平台移动应用IOS平台里URL,schema填写,还有这个Boundle,ID,,还有AppStore,ID
问题1:-canOpenURL: failed for URL: "mqq://" - error: "This app is not allowed to query for scheme mqq"
一、问题描述
真机调试时,使用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"];