关于友盟分享的总结
2016-03-29 15:13
204 查看
最近在做iOS的友盟分享,需要分享到QQ,QQ空间,微信,微信朋友圈以及新浪微博。总结一点是一定要仔细的按照官方文档来配置,虽然官方文档很详细,但是我还是要写出自己遇到的问题以及如何解决的方法,以此来帮助遇到同样问题的人。
1,iOS9由于HTTP传输安全,需要做特殊配置。我是在info.plist文件中添加 在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES。
2,如果你的应用使用了如SSO授权登录或跳转分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。我当时就忽略了这个问题,导致一直是WebView授权,但是不符合项目需求,在info.plist中加入白名单(右键info.plist用source
code打开),具体的参考这个链接就可以了点击打开链接
3,下载最新的SDK,成功下载SDK后,要去配置下。添加URL scheme,在你的工程设置项,targets
一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes。如果使用的是Xcode3或更低版本,则需要在plist文件中添加。获取各个平台appkey或者appid的方法可以参考分享详细文档绑定各个平台部分,各个平台的url scheme格式如下表:
平台 | url scheme设置格式 |
---|---|
新浪微博 | “wb”+新浪appkey,例如“wb126663232” |
微信 | 微信应用appId,例如“wxd9a39c7122aa6516”,微信详细集成步骤参考微信集成方法 |
人人网 | “rm”+你的应用bundle id,例如“rmcom.umeng.SocialSDK” |
QQ、QQ空间 | 需要添加两个URL schemes 1. “QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FC5B14”,注意大写,生成十六进制方法:点击链接,2.“tencent“+腾讯QQ互联应用Id,例如“tencent100424468" ,QQ及Qzone详细集成步骤参考手机QQ集成方法 |
来往 | Identifier填“Laiwang”,URL Schemes填来往AppId.注意使用来往SDK后,Xcode工程other linker flags需要添加-ObjC参数 |
易信 | 易信Appkey,例如“yx35664bdff4db42c2b7be1e29390c1a06” |
集成最新Facebook SDK在iOS7.0以上有效,若要使用我们提供的facebook分享需要设置“fb”+facebook AppID,例如“fb1440390216179601”,详细集成方法见集成facebook |
<textarea readonly="readonly" name="code" class="c++"> //友盟分享 [UMSocialData setAppKey:UMENG_APPKEY]; //设置微信AppId、appSecret,分享url [UMSocialWechatHandler setWXAppId:WXAppId appSecret:WXAppSecret url:MOVIEBANNERURL]; [UMSocialData defaultData].extConfig.wechatSessionData.url = MOVIEBANNERURL; [UMSocialData defaultData].extConfig.wechatTimelineData.url = MOVIEBANNERURL; [UMSocialData defaultData].extConfig.wechatSessionData.title = @"电影"; [UMSocialData defaultData].extConfig.wechatTimelineData.title = @"电影"; [[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeImage url:@"http://star.xiziwang.net/uploads/allimg/140930/19_140930101146_1.jpg"]; //设置分享到QQ/Qzone的应用Id,和分享url 链接 [UMSocialQQHandler setQQWithAppId:QQAppId appKey:QQAppSecret url:MOVIEBANNERURL]; [UMSocialData defaultData].extConfig.qqData.url = MOVIEBANNERURL; [UMSocialData defaultData].extConfig.qzoneData.url = MOVIEBANNERURL; [UMSocialData defaultData].extConfig.qqData.title = @"电影"; [UMSocialData defaultData].extConfig.qzoneData.title = @"电影"; //设置分享到新浪微博 [UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:SinaAppId secret:SinaAppSecret RedirectURL:@"http://sns.whalecloud.com/sina2/callback"]; </textarea>
<textarea readonly="readonly" name="code" class="c++"> #pragma mark 微信/QQ/新浪微博回调 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } </textarea>
<textarea readonly="readonly" name="code" class="c++"> - (void)shareActrion { if (!hasNetNow) { [BBAlertWindow showAlertWith:@"您的网络不可用,请检查网络连接"]; return; } NSLog(@"分享"); [UMSocialSnsService presentSnsIconSheetView:self appKey:UMENG_APPKEY shareText:SHARETEXT shareImage:[UIImage imageNamed:@"shareImage"] shareToSnsNames:@[UMShareToQQ, UMShareToQzone,UMShareToWechatSession, UMShareToWechatTimeline,UMShareToSina] delegate:self]; } -(void)didSelectSocialPlatform:(NSString *)platformName withSocialData:(UMSocialData *)socialData { //由于新浪微博不像扣扣,微信可以直接设置分享链接,需要在这里把你想要分享的链接打印出来,下面代码就可以分享带链接的了 if(platformName == UMShareToSina) { socialData.shareText = @"音乐 音乐播放地址:http://~~~~~~~"; } }
项目中我遇到的问题之一是:分享到扣扣和扣扣空间,都是跳转分享到扣扣好友界面,怎样区分呢?控制台一直打印出:分享图片和文字到扣扣空间这类信息,后来,我加了这个方法,使用默认分享界面分享URL图片,[[UMSocialData
defaultData].urlResource setResourceType:UMSocialUrlResourceTypeImage url:@"http://www.baidu.com/img/bdlogo.gif"];解决了这个问题,具体的还不知道为什么,如果有人知道可以跟我说下
,欢迎指出赐教。
问题二:新浪微博不可以带链接分享,具体代码已粘贴在上面。
总结一句话:官方文档还是得仔细研究,按照官方文档来,是没错的相关文章推荐
- Install VirtualBox/VMWare on Windows 10
- 堆排序
- CSS、JS 放置位置与前端性能的关系?
- 最近很火的 将军与妓的故事。
- Activity总结
- android:ScrollView内嵌套ListView、MapView等滑动冲突
- 浅析TCP字节流与UDP数据报的区别
- C# TreeView的帮助类
- AppStore审核被拒绝
- Xcode中同一Project创建多个target的总结
- kmalloc fail导致系统异常
- win10 UWP Controls by function
- 进程间通信之-共享内存Shared Memory--linux内核剖析(十一)
- ASE格式文件解析
- linux远程桌面
- Blind Return Oriented Programming (BROP) Attack - 攻击原理
- (二)RxJava+RxBinding在View上的一些使用技巧
- 【高效server实践】--redis性能分析
- IOS开发-OC学习-protocol(协议)
- final static区别示例