IOS 使用ShareSDK进行QQ,微信,新浪微博分享失败经验
来源:互联网 发布:arm linux 运行程序 编辑:程序博客网 时间:2024/04/29 01:56
该文章转自 http://blog.csdn.net/iosbird/article/details/50420547 非常感谢提供解决思路
问题描述:在iOS9下,系统默认会拦截对http协议接口的访问,因此无法获取http协议接口的数据。对ShareSDK来说,具体表现可能是,无法授权、分享、获取用户信息等。
还可能造成我们的编辑界面里传http之类的网络图片的时候,我们的编辑界面不会显示图片截图,解决的办法或者全面关闭https,允许使用http请求;或者把图片的域添加;又或者选择使用https的图片
解决方案(以下方法2选1):
(1)、暂时退回到http协议。
具体方法:
在项目的info.plist中添加一个Key:NSAppTransportSecurity,类型为字典类型。
然后给它添加一个Key:NSAllowsArbitraryLoads,类型为Boolean类型,值为YES;
(2)、设置域。可以简单理解成,把不支持https协议的接口设置成http的接口。
具体方法:
1)、在项目的info.plist中添加一个Key:NSAppTransportSecurity,类型为字典类型。
2)、然后给它添加一个NSExceptionDomains,类型为字典类型;
3)、把需要的支持的域添加給NSExceptionDomains。其中域作为Key,类型为字典类型。
4)、每个域下面需要设置3个属性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。
均为Boolean类型,值分别为YES、NO、YES。
细节提示:在iOS9中如果使用到网络图片,也要注意网络图片是否是HTTP的哦,如果是,也要把图片的域设置哦!
各平台设置域
新浪微博
- weibo.com
- weibo.cn
- sina.com.cn
腾讯微博
- qq.com
微信
- qq.com
QQ/QZone
- qq.com
易信
- 无需配置
豆瓣
- 无需配置
人人
- renren.com
开心网
- kaixin001.com
- kaixin001.com.cn
有道
- youdao.com
facebook.com
fbcdn.NET
akamaihd.Net
- twitter.com
Google+
- 无需配置
- instagram.com
- instagramstatic-a.akamaihd.net
Tumblr
- tumblr.com
Instapaper
- instapaper.com
- 无需配置
明道
- 无需配置
Evernote印象笔记
- 无需配置
VK
- 无需配置
- 无需配置
- 无需配置
Dropbox
- 无需配置
Flickr
Kakao
- 无需配置
kakao.com
2、大部分社交平台SDK不支持bitcode。
问题描述:iOS 9新建项目默认需要支持bitcode,而不支持bitcode的SDK会导致无法编译运行。
解决方案:
(1)、暂时关闭对bitcode的支持(建议),方法如下图
(2)、移除不支持bitcode的平台SDK。
3、添加Scheme白名单。
问题描述:在iOS 9下涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme。对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端。因此要支持客户端的分享和授权等,需要配置Scheme名单。
具体方法:
1)、在项目的info.plist中添加一LSApplicationQueriesSchemes,类型为Array。
2)、然后给它添加一个需要支持的项目,类型为字符串类型;
各平台OpenURL白名单说明
新浪微博
- sinaweibo,
- sinaweibohd,
- sinaweibosso,
- sinaweibohdsso,
- weibosdk,
- weibosdk2.5
- [后两个若导入新浪SDK则需要]
腾讯微博
- TencentWeibo,
- tencentweiboSdkv2
- [控制台会提示这两个,但是腾讯微博SDK已经弃用,可以忽略不配置]
豆瓣
- 无需配置
开心网
- 无需配置
微信
- wechat,
- weixin
易信
- yixin,
- yixinopenapi
支付宝
- alipay,
- alipayshare
- mqqOpensdkSSoLogin,
- mqqopensdkapiV2,
- mqqopensdkapiV3,
- wtloginmqq2,
- mqq,
- mqqapi
QZONE
- mqzoneopensdk,
- mqzoneopensdkapi,
- mqzoneopensdkapi19,
- mqzoneopensdkapiV2,
- mqqOpensdkSSoLogin,
- mqqopensdkapiV2,
- mqqopensdkapiV3,
- wtloginmqq2,
- mqqapi,
- mqqwpa,
- mqzone,
- mqq
[注:若同时使用QQ和QZONE,则直接添加本格即可]
Google+
- googlechrome,
- googlechrome-x-callback,
- hasgplus4,
- com.google.gppconsent,
- com.google.gppconsent.2.2.0,
- com.google.gppconsent.2.3.0,
- com.google.gppconsent.2.4.0,
- com.google.gppconsent.2.4.1
人人网
- renrenapi,
- renrenios,
- renreniphone,
- renren,
- 以及在使用人人SDK时所需配置的URL Scheme,例如:rm226427com.mob.demoShareSDK
- fbauth2
- 无需配置
- pocket-oauth-v1
- pinit
Line
- line
KakaoTalk
- kakaolink
KaokaoStory
- storylink
- 无需配置
Tumblr
- 无需配置
非平台类,如短信,复制,邮件等
- 无需配置
.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “This app is not allowed to query for scheme sinaweibohdsso”(如下图)
如没有添加相关白名单,有可能导致分享失败,例如不会跳转微信,不会跳转QQ等。
2.添加完上述所需的名单,系统依然会打印类似信息:.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “null”
这是系统打印的信息,目前是无法阻止其打印,即无法消除的
3.上述白名单,是技术人员通过不断的测试收集整理所得,如果各位开发者朋友发现上表格有所遗漏,请根据系统信息添加相关白名单即可。如果没有设置白名单的话,系统的打印信息如图所示:
添加完后,系统是依然会打印的,不过error会变成null:
- IOS 使用ShareSDK进行QQ,微信,新浪微博分享失败经验
- android ShareSDK分享,QQ,微信,新浪等分享
- iOS项目开发实战——使用ShareSDK进行QQ和微信分享
- Unity3d 4.6.8 ShareSDK 分享新浪,微信,qq,经验总结
- work_weipa_使用shareSDK实现一键分享(QQ好友和空间、微信好友和朋友圈、新浪微博)
- shareSDK qq 微信分享
- iOS ShareSDK 分享到新浪微博
- iOS ShareSDK 分享到新浪微博
- Android 使用shareSDK进行第三方登录失败解决方法(微信,微博,qq)
- iOS:shareSDK 第三方登录(qq 微信 新浪微博)
- 使用shareSDK实现qq,微博,微信分享
- 使用shareSDK实现qq,微博,微信分享
- Android开发shareSDK一键进行新浪微博分享
- ShareSDK分享到微信、微信朋友圈、QQ
- 第三方 ShareSdk QQ、微信分享
- shareSDK的微信分享失败问题
- ShareSDK集成微信、QQ、微博分享
- cocos2d-x手机游戏(IOS版本)接入分享shareSDK(新浪微博和微信分享)记录
- IOS上路_01-Win7+VMWare9+MacOSX10.8+XCode4.6.3
- kafka 学习笔记
- [leetcode]260. Single Number III
- IIC简介及建议
- 开启我的程序员生涯。
- IOS 使用ShareSDK进行QQ,微信,新浪微博分享失败经验
- 不朽凡人 > 正文 第五百一十七章 有了自己的商铺
- ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面
- Linux关闭防火墙命令
- 每天10个前端知识点:原生篇(3)
- 20-Oracle入门之索引
- java程序员16年度总结
- 第三章的小知识点
- python2.7中编码问题以及txt文件读写的注意事项