iOS:ShareSDk的分享
使用分享类的SDK其实有很多,例如友盟、ShareSDK等等,参照他们的文档集成起来并不是很难,可能出的一些问题也就是配置文件的问题,这里我个人使用了ShareSDK分享,具体操作可出现的问题如下:
1.首先去ShareSDK官方网站注册开发者账号,获取AppKey用来注册SDK:http://www.mob.com/#/
2.下载SDK:http://www.mob.com/#/downloadDetail/ShareSDK/ios
(1) ShareSDK.framework:核心静态库。(必要) (2) Support 文件夹。其中包含三个文件夹 :(a) Required (需要的类库) :----- MOBFoundation.framework:基础功能框架。(必要)----- ShareSDK.bundle:ShareSDK资源文件。(必要)----- ShareSDKConnector.framework:用于ShareSDK框架与外部框架连接的代理框架插件。(使用第三方SDK时必要。)(b) Optional (可选类库):----- ShareSDKExtension.framework:对ShareSDK功能的扩展框架插件。(主要提供第三方平台登录、 一键分享、截屏分享、摇一摇分享等相关功能。需要使用以上功能时必要。)----- ShareSDKInterfaceAdapter.framework:ShareSDK v2.x对简洁版的接口兼容包。----- ShareSDKUI.bundle:分享菜单栏和分享编辑页面资源包。(如果自定义这些UI可直接移除)----- ShareSDKUI.framework:分享菜单栏和分享编辑页面。(如果自定义这些UI可直接移除)(c) PlatformSDK 第三方平台SDK。(不需要的平台的SDK可直接移除)
3.去新浪微博开放平台、腾讯开放平台、微信开放平台等去注册账号,获取AppKey、AppID、APPScret等
平台 |
开放平台地址
|
APPkey 申请流程
|
|
新浪微博 |
http://open.weibo.com
|
http://bbs.mob.com/thread-89-1-4.html
新浪微博开放平台接入tips
|
|
腾讯微博 |
http://dev.t.qq.com
|
http://bbs.mob.com/thread-265-1-1.html
|
|
QQ空间[2] |
http://open.qq.com/
|
http://bbs.mob.com/thread-98-1-4.html
|
|
微信[3] |
http://open.weixin.qq.com
|
http://bbs.mob.com/thread-95-1-4.html
|
|
https://developers.facebook.com
|
如何创建facebook的应用
facebook审核流程:iOS Android
|
||
https://dev.twitter.com
|
http://bbs.mob.com/thread-119-1-3.html
|
||
google+ | https://console.developers.google.com/ |
http://bbs.mob.com/forum.php?mod=viewthread&tid=20731&page=1&extra=#pid45156
|
|
豆瓣 |
http://developers.douban.com
|
http://bbs.mob.com/thread-253-1-1.html
|
|
有道云笔记 |
http://note.youdao.com/open/developguide.html#app
|
http://bbs.mob.com/thread-256-1-1.html
|
|
印象笔记 |
https://dev.evernote.com/
|
http://bbs.mob.com/thread-263-1-1.html
|
|
https://www.linkedin.com/secure/developer?newapp=
|
http://bbs.mob.com/forum.php?mod=viewthread&tid=20729&extra=page%3D1
|
||
Flickr |
http://www.flickr.com/services/
|
http://bbs.mob.com/thread-245-1-2.html
|
|
http://developers.pinterest.com/
|
|
||
Tumblr |
http://www.tumblr.com/developers
|
http://bbs.mob.com/thread-248-1-2.html
|
|
Dropbox |
https://www.dropbox.com/developers
|
http://bbs.mob.com/thread-249-1-2.html
|
|
http://instagram.com/developer#
|
http://bbs.mob.com/thread-250-1-1.html
|
||
VKontakte |
http://vk.com/dev
|
http://bbs.mob.com/thread-251-1-1.html
|
|
易信好友[4] |
http://open.yixin.im/
|
http://bbs.mob.com/thread-236-1-2.html
|
|
明道 |
http://open.mingdao.com/
|
http://bbs.mob.com/thread-257-1-1.html
|
|
人人网 |
http://dev.renren.com
|
http://bbs.mob.com/thread-309-1-1.html
|
|
开心网 |
http://open.kaixin001.com
|
http://bbs.mob.com/thread-308-1-1.html
|
|
搜狐随身看 | https://open.sohu.com/ |
http://bbs.mob.com/thread-331-1-1.html
|
4.在plist文件配置属性
(1)Htpp协议,如果适配iSO9,需要暂时回退到http协议 info plist加<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict>(2)设置白名单 ,在plist文件的URL Types中设置URL Schemes白名单:具体设置可以参照官方文档,很详细
(3)涉及到客户端跳转,一定要设置scheme到LSApplicationQueriesSchemes,只有设置了这个,在真机才能实现客户端的跳转,进入QQ、微信、新浪等
进入QQ客户端:
进入微信客户端:
新浪微博客户端:
好了,一定准备就绪,直接上代码://1.创建一个AppDelegate分类
#import "AppDelegate.h"//shareSDK #import <ShareSDK/ShareSDK.h> #import <ShareSDKConnector/ShareSDKConnector.h>//腾讯开放平台(对应QQ和QQ空间)SDK头文件 #import <TencentOpenAPI/TencentOAuth.h> #import <TencentOpenAPI/QQApiInterface.h>//微信SDK头文件 #import "WXApi.h"//新浪微博SDK头文件 //新浪微博SDK需要在项目Build Settings中的Other Linker Flags添加"-ObjC" #import "WeiboSDK.h"@interface AppDelegate (KJShareSDk)-(void)shareApplication:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;@end
// AppDelegate+KJShareSDk.m // KenJiao // // Created by mac on 16/4/26. // Copyright © 2016年 mac. All rights reserved. // #import "AppDelegate+KJShareSDk.h"@implementation AppDelegate (KJShareSDk)-(void)shareApplication:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{/*** 设置ShareSDK的appKey,如果尚未在ShareSDK官网注册过App,请移步到http://mob.com/login 登录后台进行应用注册,* 在将生成的AppKey传入到此方法中。* 方法中的第二个第三个参数为需要连接社交平台SDK时触发,* 在此事件中写入连接代码。第四个参数则为配置本地社交平台时触发,根据返回的平台类型来配置平台信息。* 如果您使用的时服务端托管平台信息时,第二、四项参数可以传入nil,第三项参数则根据服务端托管平台来决定要连接的社交SDK。*/[ShareSDK registerApp:@"121f16c6xxxxx"activePlatforms:@[@(SSDKPlatformTypeSinaWeibo),@(SSDKPlatformTypeWechat),@(SSDKPlatformTypeQQ)]onImport:^(SSDKPlatformType platformType){switch (platformType){case SSDKPlatformTypeWechat:[ShareSDKConnector connectWeChat:[WXApi class]];break;case SSDKPlatformTypeQQ:[ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];break;case SSDKPlatformTypeSinaWeibo:[ShareSDKConnector connectWeibo:[WeiboSDK class]];break;default:break;}}onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo){switch (platformType){case SSDKPlatformTypeSinaWeibo://设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权[appInfo SSDKSetupSinaWeiboByAppKey:@"117501xxx"appSecret:@"ac85119d8a70e9c954bbf62364xxxx"redirectUri:@"http://www.baidu.com"authType:SSDKAuthTypeBoth];break;case SSDKPlatformTypeWechat:[appInfo SSDKSetupWeChatByAppId:@"wx365f7b8b89dxxxx"appSecret:@"652feede37bd1ff5484abb1ed51xxxxf"];break;case SSDKPlatformTypeQQ:[appInfo SSDKSetupQQByAppId:@"1105359xxx"appKey:@"ewgzpB2GOf3SIxxx"authType:SSDKAuthTypeBoth];break;default:break;}}]; }@end
//2.在AppDelegate类中直接调用即可
#import "AppDelegate.h" #import "AppDelegate+KJShareSDk.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {//注册shareSDK [self shareApplication:application didFinishLaunchingWithOptions:launchOptions];return YES; } @end
//3、最后一步就是分享内容了
//点击微信 -(void)weiixnBtnClicked:(UIButton *)sender{//1.隐藏分享视图 [self cancelBtnClicked:nil];//2、创建分享参数NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];[shareParams SSDKSetupShareParamsByText:[NSString stringWithFormat:@"班级号:%@",self.currentClass.class_id]images:nilurl:niltitle:@"将该班级号分享到微信"type:SSDKContentTypeAuto];//3、分享(微信平台) [self startSharePlatform:SSDKPlatformTypeWechat parameters:shareParams];} //点击QQ -(void)QQBtnClicked:(UIButton *)sender{//1.隐藏分享视图 [self cancelBtnClicked:nil];//2、创建分享参数NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];[shareParams SSDKSetupShareParamsByText:[NSString stringWithFormat:@"班级号:%@",self.currentClass.class_id]images:nilurl:niltitle:@"将该班级号分享到QQ"type:SSDKContentTypeAuto];//3、分享(QQ平台) [self startSharePlatform:SSDKPlatformTypeQQ parameters:shareParams]; } //点击微博 -(void)weiBoBtnClicked:(UIButton *)sender{//1.隐藏分享视图 [self cancelBtnClicked:nil];//2、创建分享参数NSMutableDictionary *shareParams = [NSMutableDictionary dictionary]; [shareParams SSDKEnableUseClientShare];//登录客户端 [shareParams SSDKSetupShareParamsByText:[NSString stringWithFormat:@"班级号:%@",self.currentClass.class_id]
images:nilurl:niltitle:@"将该班级号分享到微博"type:SSDKContentTypeAuto];//3、分享(新浪微博平台) [self startSharePlatform:SSDKPlatformTypeSinaWeibo parameters:shareParams];} //开始分享 -(void)startSharePlatform:(SSDKPlatformType)platform parameters:(NSMutableDictionary *)parameters{[ShareSDK share:platform parameters:parameters onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {switch (state) {case SSDKResponseStateSuccess:{UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];[alertView show];break;}case SSDKResponseStateFail:{UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失败" message:[NSString stringWithFormat:@"%@",error] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];[alert show];break;}default:break;}}]; } //点击取消 -(void)cancelBtnClicked:(UIButton *)sender{[self.inviteStuView removeFromSuperview];[self.inviteStuView.backgroundView removeFromSuperview]; }
手机测试截图:例如立即邀请后,使用新浪微博分享班级号,此时打开新浪微博客户端。QQ和微信也是一样的
总结:
总结:像适配iOS9此类问题 使用第三方的直接看别人官网就行了,要不访问提供方的如微信,QQ,支付宝API官方看开发文档
如果是用sharesdk 友盟此类的 去看他们的开发文档都会第一时间给开发者提供解决方案的
sharesdk分享 iOS9适配文档地址
http://wiki.mob.com/ios9-%E5%AF%B9sharesdk%E7%9A%84%E5%BD%B1%E5%93%8D%EF%BC%88%E9%80%82%E9%85%8Dios-9%E5%BF%85%E8%AF%BB%EF%BC%89/
友盟分享 iOS9适配地址
http://dev.umeng.com/social/ios/ios9
本人原创,转载须注明出处,谢谢!
转载于:https://www.cnblogs.com/XYQ-208910/p/5437194.html
iOS:ShareSDk的分享相关推荐
- iOS - ShareSDK第三方分享(图文和视频)和登录
由于近期工作需要自己抽时间搞了一下第三方分享,这里使用的是shareSDK的第三方,在使用的过程中有一些心得和体会,特在此和大家分享一下~ 1.在经过将近一周时间的开发,终于搞定ios分享了. 2.由 ...
- iOS ShareSDK实现分享——微信分享
最近领导让添加ios 微信分享视频的功能,之前做的只有微信分享本地图片的功能. 查看官网并没有找到答案,后来在其官网论坛中http://bbs.mob.com/thread-20938-1-1.htm ...
- android 分享链接地址,android/IOS各平台分享链接/跳转链接配置说明(备用)
Android: [Java] 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 微信/朋友圈 //设置分享 ...
- shareSDK 微信分享的时候只能分享jpg格式的图片大于32k时为什么分享不出去?
最新下了9.0的下shareSDK的来做iOS app社交分享,发现当分享到微信上的时候,图片如果是.png格式的话,功能是正常的,但其他格式的图片大于32k时就会分享不成功, 转载于:https:/ ...
- shareSDK社会化分享快速集成
几乎所有的APP上都有分享功能 ,用户希望把自己所见所得告诉身边好友或是其它的用户,App开发者更加希望可以通过分享让更多的人知道我的应用,让更多的人来使用我们的应用.所以分享功能就成为了我们开发AP ...
- 关于iOS的社会化分享方案总结
本文讲的是关于iOS的社会化分享方案总结,一.系统原生 UIActivityViewController 优缺点 优点:使用简单.不用注册繁杂的分享平台账号.不用导入臃肿的SDK包 缺点:UI可定制性 ...
- android shareSDK 微博分享案例
[置顶] android shareSDK 微博分享案例 分类: Android2014-10-10 08:57 11694人阅读 评论(4) 收藏 举报 android shareSDK 微博分享案 ...
- [分享]错误“应用程序Xcode的这个版本不能与此版本的OS X配合使用”以及Mac源码和IOS开发资料分享
[分享]错误"应用程序Xcode的这个版本不能与此版本的OS X配合使用"以及Mac源码和IOS开发资料分享 安装Xcode时,出现"应用程序Xcode的这个版本不能 ...
- 使用友盟社会化分享IOS版SDK分享纯图片到微信
本文和上一篇友盟社会化分享Android版是兄弟篇.其实本人用的是友盟Cocos2d-x的IOS版.对于普通IOS版如何分享纯图片到微信朋友圈,官网文档中已经说明的比较清楚,但是在Cocos2d-x版 ...
最新文章
- grub设置密码的方法
- jQuery Ajax 实例 ($.ajax、$.post、$.get)
- mysql8.0默认引擎是什么_MySQL8.0新特性【转】
- 几个常用算法的适应场景及其优缺点
- flask 上传头像
- 浅谈Java设计模式
- 浅谈C/C+内存管理、内存泄漏、堆栈
- 台式计算机硬盘的安装位置,如何在台式机机箱中安装硬盘
- 小米 note3 android,小米Note3将更新MIUI10:基于安卓8.1 速度提升明显手感更加丝滑...
- 西安交大计算机专业考研复试,2018西安交通大学计算机考研复试分数线_计算机考研分数线...
- 通过微信扫码登录剖析 oauth2 认证授权技术
- C++编写的一个图书管理系统
- ajax请求失败readyState为0
- ubuntu14.04+cuda6.5+opencv2.4.9+cuda-convnet2配置
- 万众瞩目!ICF5国产开源飞控推出,为国内无人系统发力
- 学计算机颈椎痛,有效缓解颈椎疼痛的七个简单动作及附图 (电脑族必备)
- swing图形用户界面设计
- 客户端文件与服务器不匹配,说客户端和服务器版本不一致,咋回事?
- 白帽子讲web安全PDF完整版
- 动态编译入门(gradle Transform Demo)