騰訊開放平臺管理中心 申請QQ分享時需要填寫的URL schema
當(dāng)在 iOS app 中集成qq的分享功能時,需要申請?zhí)顚懸韵聝?nèi)容:

這個URL schema是干什么用的呢?
答:設(shè)置這個URL schema是為了保證在分享完成或取消的時候自己的app 能被喚起。
那么其中URL schema的值這里又是需要填寫多少呢,是要怎么獲得呢?
答:其獲得方式,是通過將申請的qq app id 轉(zhuǎn)換為相應(yīng)的 URL Schema得來的。

將app id轉(zhuǎn)換為 URL schema 的方法如下:

最終這里要填寫的url schema 格式如下:
"QQ" + 騰訊QQ互聯(lián)應(yīng)用appId 轉(zhuǎn)換成十六進(jìn)制 (不足8位前面補0). 例如:QQ05FA957C
附:將十進(jìn)制的app id 轉(zhuǎn)換為十六進(jìn)制的方法:
方法①:在命令行中輸入以下命令:
echo 'ibase=10;obase=16;您的騰訊QQ互聯(lián)應(yīng)用Id'|bc
方法②:點擊進(jìn)入10進(jìn)制轉(zhuǎn)換16進(jìn)制
這樣我們就完成了申請內(nèi)容的填寫了。
那是不是就等于我們的app就已經(jīng)擁有了分享的功能了 呢?
答:還要在你的工程設(shè)置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,
①設(shè)置Xcode的url scheme格式為之前在QQ互聯(lián)后臺填的的URL schema中“QQ”+騰訊QQ互聯(lián)應(yīng)用appId轉(zhuǎn)換成十六進(jìn)制(不足8位前面補0),例如“QQ05FC5B14”。
②并 額外設(shè)置 url schemes 的格式為"tencent"+騰訊QQ互聯(lián)應(yīng)用appId,例如“tencent5FC5B14”
如果 URL schemes 配置錯誤,則分享完成后無法返回應(yīng)用
解釋如下:
qq比較麻煩點,需要兩個 URL schemes
1、QQ+appID(注意:這里的appID填由原本的10進(jìn)制轉(zhuǎn)換過去的16進(jìn)制值)
2、tencent+appID(注意:這里的appID填原本的10進(jìn)制的,而不是16進(jìn)制,否則分享成功后,無法返回)

其他可參考內(nèi)容:騰訊開放平臺移動應(yīng)用IOS平臺里URL,schema填寫,還有這個Boundle,ID,,還有AppStore,ID
問題1:-canOpenURL: failed for URL: "mqq://" - error: "This app is not allowed to query for scheme mqq"

一、問題描述
真機調(diào)試時,使用MonkeyKing注冊微信、支付寶等時會報 canOpenURL: failed for URL: "weixin://" - error: "The operation couldn’t be completed. (OSStatus error -10814.)
二、解決辦法
在真機上下載注冊時對于的APP應(yīng)該,注冊微信,就下載微信應(yīng)用,注冊支付寶就下載支付應(yīng)用,就OK了。
【iOS開發(fā)】canOpenURL: failed for URL
常見問題
問題2001
Domain=UMSocialPlatformErrorDomain Code=2001 "(null)" UserInfo={message=Url is not value image url}
此問題在設(shè)置了Info.plist里NSAppTransportSecurity下的NSAllowsArbitraryLoads值為為YES后還是會出現(xiàn)。
解決方法:將圖片地址改為https的地址。如https://cdn.pixabay.com/photo/2015/07/09/20/06/stork-838424_1280.jpg
- (void)shareImageAndTextToPlatformType:(UMSocialPlatformType)platformType
{
//創(chuàng)建分享消息對象
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
//設(shè)置文本
messageObject.text = @"社會化組件UShare將各大社交平臺接入您的應(yīng)用,快速武裝App。";
//創(chuàng)建圖片內(nèi)容對象
UMShareImageObject *shareObject = [[UMShareImageObject alloc] init];
//如果有縮略圖,則設(shè)置縮略圖
shareObject.thumbImage = [UIImage imageNamed:@"icon"];
[shareObject setShareImage:@"https://cdn.pixabay.com/photo/2015/07/09/20/06/stork-838424_1280.jpg"];
//分享消息對象設(shè)置分享內(nèi)容對象
messageObject.shareObject = shareObject;
//調(diào)用分享接口
[[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);
}
}];
}
分享失敗檢查的步驟:
①在該平臺開發(fā)者中心上,檢查該對應(yīng)平臺信息是否是否注冊
②在代碼中添加平臺支持
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:KEY_QQ appSecret:nil redirectURL:@"http://mobile.umeng.com/social"];