iOS 分享功能开发
iOS 开发过程中可能会遇到需要进行第三方分享的需求,比如向QQ,微信,微博等分享
如下图
我们今天要讲到的方式是使用了一个第三方工具: http://www.sharesdk.cn
一,注册账号
去官网注册:http://www.sharesdk.cn
创建应用,最终获得 App Key,App Secret
二,SDK集成
下载SDK
把下载的SDK拖到项目工程,在弹出的对话框中选中"Copy items if needed"和"Create groups",并点击“Finish“按钮
添加依赖库文件
必须添加的依赖库:
SystemConfiguration.framework
QuartzCore.framework
CoreTelephony.framework
libicucore.dylib
libz.1.2.5.dylib
Security.framework根据社交平台需要添加的依赖库
Social.framework 腾讯微博
Accounts.framework 腾讯微博
MessageUI.framework 短信和邮件
libstdc++.dylib QQ好友和QQ空间SSO授权需要(新注册的腾讯开放平台帐号只支持SSO授权权限)
libsqlite3.dylib QQ好友和QQ空间SSO授权需要(新注册的腾讯开放平台帐号只支持SSO授权权限)
CoreMotion.framework Google+
CoreLocation.framework Google+
MediaPlayer.framework Google+
CoreText.framework Google+
AssetsLibrary.framework Google+
AddressBook.framework Google+到此为止SDK集成就算完成 下来我们开始代码部分
三,初始ShareSDK和社交平台
在AppDelegate.m中添加ShareSDK头文件
1.设置根视图控制器
必须设置rootViewController。如果使用storyBoard,系统会自动设置根视图控制器。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// Override point for customization after application launch._window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];_window.backgroundColor =[UIColor colorWithRed:249/255.0 green:249/255.0 blue:249/255.0 alpha:1];HelpViewController *mainController=[[HelpViewController alloc]init];_window.rootViewController=mainController;[_window makeKeyAndVisible];return YES; }
以上示例代码中讲 HelpViewController 的一个对象设置为了 此应用的rootViewcontroller;
2.初始化ShareSDK
导入头文件,加上初始化方法。
#import <ShareSDK/ShareSDK.h>
//1.初始化ShareSDK应用,字符串"iosv1101"是应该换成你申请的ShareSDK应用中的Appkey[ShareSDK registerApp:@"iosv1101"];//2. 初始化社交平台//2.1 代码初始化社交平台的方法[self initializePlat];
[self initializePlat ] 方法见下一步(此处以微信,qq,腾讯微博 ,新浪微博为例);
3.初始化社交平台
可以用代码初始化或在ShareSDK开发者后台的社会化平台设置中填入社交平台的信息。
#import "WXApi.h" #import "WeiboSDK.h" #import "WeiboApi.h" #import <TencentOpenAPI/QQApi.h> #import <TencentOpenAPI/QQApiInterface.h> #import <TencentOpenAPI/TencentOAuth.h>
社交平台的AppKey、AppSecret、回调地址等需要您自已去相应平台新建应用获取。
- (void)initializePlat {/**连接微信应用以使用相关功能,此应用需要引用WeChatConnection.framework和微信官方SDKhttp://open.weixin.qq.com上注册应用,并将相关信息填写以下字段**/[ShareSDK connectWeChatWithAppId:@""appSecret:@""wechatCls:[WXApi class]];/**连接QQ应用以使用相关功能,此应用需要引用QQConnection.framework和QQApi.framework库http://mobile.qq.com/api/上注册应用,并将相关信息填写到以下字段**///旧版中申请的AppId(如:QQxxxxxx类型),可以通过下面方法进行初始化// [ShareSDK connectQQWithAppId:@"QQ075BCD15" qqApiCls:[QQApi class]];[ShareSDK connectQQWithQZoneAppKey:@""qqApiInterfaceCls:[QQApiInterface class]tencentOAuthCls:[TencentOAuth class]];///**连接腾讯微博开放平台应用以使用相关功能,此应用需要引用TencentWeiboConnection.frameworkhttp://dev.t.qq.com上注册腾讯微博开放平台应用,并将相关信息填写到以下字段如果需要实现SSO,需要导入libWeiboSDK.a,并引入WBApi.h,将WBApi类型传入接口**/[ShareSDK connectTencentWeiboWithAppKey:@""appSecret:@""redirectUri:@"http://www.sharesdk.cn"wbApiCls:[WeiboApi class]];///**连接QQ空间应用以使用相关功能,此应用需要引用QZoneConnection.frameworkhttp://connect.qq.com/intro/login/上申请加入QQ登录,并将相关信息填写到以下字段如果需要实现SSO,需要导入TencentOpenAPI.framework,并引入QQApiInterface.h和TencentOAuth.h,将QQApiInterface和TencentOAuth的类型传入接口**/// [ShareSDK connectQZoneWithAppKey:@""// appSecret:@""// qqApiInterfaceCls:[QQApiInterface class]// tencentOAuthCls:[TencentOAuth class]];/**连接新浪微博开放平台应用以使用相关功能,此应用需要引用SinaWeiboConnection.frameworkhttp://open.weibo.com上注册新浪微博开放平台应用,并将相关信息填写到以下字段**/[ShareSDK connectSinaWeiboWithAppKey:@""appSecret:@""redirectUri:@"http://www.sharesdk.cn"];}
四,设置URL Scheme
1.需要依赖客户端分享或者要支持SSO授权(可以理解成跳到客户端授权)的平台都需要配置平台的URL Scheme(应用分享到社交平台后通过识别URL Scheme返回应用)。具体配置URL Scheme请参考iOS配置SSO授权
(http://wiki.mob.com/%E9%85%8D%E7%BD%AEsso%E6%8E%88%E6%9D%83-2/)。
2.需要在AppDelegate.m中添加处理打开链接的方法
- (BOOL)application:(UIApplication *)applicationhandleOpenURL:(NSURL *)url {return [ShareSDK handleOpenURL:urlwxDelegate:self]; }- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)urlsourceApplication:(NSString *)sourceApplicationannotation:(id)annotation {return [ShareSDK handleOpenURL:urlsourceApplication:sourceApplicationannotation:annotationwxDelegate:self]; }
五,构造分享内容并分享
1.构造一个id<ISSContent>类型的对象,把需要分享的标题、内容、图片、URL等 包装在这个对象。
在需要分享的viewController 中导入头文件
#import <ShareSDK/ShareSDK.h>
在需要分享的地方 实现如下方法
比如在点击一个button的时候调用方法 shareAct
-(void)shareAct:(id)sender { // NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"ShareSDK" ofType:@"jpg"];//1、构造分享内容id<ISSContent> publishContent = [ShareSDK content:@"要分享的内容"defaultContent:@"默认内容"image:[ShareSDK imageWithPath:imagePath]title:@"ShareSDK"url:@"http://www.mob.com"description:@"这是一条演示信息"mediaType:SSPublishContentMediaTypeNews];//1+创建弹出菜单容器(iPad必要)id<ISSContainer> container = [ShareSDK container];[container setIPadContainerWithView:sender arrowDirect:UIPopoverArrowDirectionUp];//2、弹出分享菜单[ShareSDK showShareActionSheet:containershareList:nilcontent:publishContentstatusBarTips:YESauthOptions:nilshareOptions:nilresult:^(ShareType type, SSResponseState state, id<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> error, BOOL end) {//可以根据回调提示用户。if (state == SSResponseStateSuccess){UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享成功"message:nildelegate:selfcancelButtonTitle:@"OK"otherButtonTitles:nil, nil];[alert show];}else if (state == SSResponseStateFail){UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失败"message:[NSString stringWithFormat:@"失败描述:%@",[error errorDescription]]delegate:selfcancelButtonTitle:@"OK"otherButtonTitles:nil, nil];[alert show];}}];}
到此基本完成
测试一下 点击微博分享
如有问题 可留言,或者QQ群:414319235 欢迎交流学习
iOS 分享功能开发相关推荐
- 公众号分享页面php,微信公众号网页分享功能开发的示例代码
现在每天都可以看到很多微信分享的链接上面有网站或者商家的自定义的分享标题,和分享链接的描述及分享出去的图像,例如下面的分享出去的链接: 上面这个是微信的js-SDK页面分享给微信好友在聊天列表中显示的 ...
- 2015最新微信分享功能开发,自定义分享内容。
在2015年之前很长一段时间,微信分享功能,只需要页面埋几段js代码即可捕获用户点击分享按钮的事情,并且自定义. 但后来微信的新版本里已经屏蔽了次方法直接调用分享接口 需要在服务端坐一点开发工作. 当 ...
- 微信小程序分享功能开发及调试方法
首先说一下使用方法如下,Button组件设置open-type="share"即可触发onShareAppMessage完成分享功能 <button class=" ...
- 微信分享 ajax冲突,微信jssdk分享功能开发及解决ajax跨域的问题
微信JS-SDK说明文档 微信JS-SDK Demo 我所要实现的分享功能要求:只要提供一段js代码给前端美工放置在静态页面等就可以实现分享功能. js代码如下: url=location.href; ...
- 微信公众号分享功能开发体验
公众号提供了一个分享功能,通过jsapi来访问,主要作用是修改特定页面下点击微信右上角[...]选择[转发给朋友][分享到朋友圈]以及[分享到手机QQ][分享到QQ空间]的内容. 分享到微信的操作步骤 ...
- 微信公众号网页分享功能开发
现在每天都可以看到很多微信分享的链接上面有网站或者商家的自定义的分享标题,和分享链接的描述及分享出去的图像,例如下面的分享出去的链接: 上面这个是微信的js-SDK页面分享给微信好友在聊天列表中显示的 ...
- ios 分享功能 集成友盟分享
1.集成友盟分享,需要先注册一个友盟账号,注册地址 友盟开发者平台官网 友盟集成文档 友盟sdk下载地址友盟sdk下载地址 2,成功下载sdk集成后,微信分享需要配置一下 新浪微博 之类到同样配置就 ...
- 微信jssdk分享功能开发
先理解下分享: 在app端 ,经常能看见 分享按钮的功能,(分享给朋友,分享到朋友圈,分享到QQ空间等等): https://open.weixin.qq.com/(微信开发平台),这需要到开放平台注 ...
- 微信小程序自定义分享功能开发笔记
要在分享的页面中定义onShareAppMessage 方法,只有定义了此事件处理函数,右上角菜单才会显示"转发"按钮 onShareAppMessage触发方式有两种,一种是通过 ...
最新文章
- C语言里的逗号!_只愿与一人十指紧扣_新浪博客
- 【OpenCV】邻域滤波:方框、高斯、中值、双边滤波
- 加密 lua_三、Lua相关知识
- 纯CSS导航栏下划线跟随效果
- 小米MIX 4屏幕细节曝光:首发柔性曲面屏下前摄
- Lego-美团点评接口自动化测试实践
- 验证javascript错误使用Google Analytics(分析、统计)
- 程序员的职业素养---转载
- Linux C编程 —— 通过文件描述符获得文件路径
- 学长的白日梦C语言题目,bzoj4030【HEOI2015】小L的白日梦
- The server encountered an internal error () that prevented it from fulfilling this request.
- 携程旅行网的盈利模式
- 【风马一族_win10设置热点】win10无法开启热点怎么办
- DevExpress XtraReport报表开发相关知识点
- ​零代码增删改查完全自动化的万能通用接口
- Cluster analysis :Basic Concepts and Algorithms -- Part 1 Overview
- 计算机组装与维护手写笔记,科学网—计算机技术的简单小结 - 熊伟的博文
- 快递查询单号查询物流实用攻略
- ios仿淘宝商品详情页面粘贴商品规格弹出模板
- 计算机软考access 题的做法_软考初级信息处理技术员下午试题(一)
热门文章
- 德国linux桌面版,来自德国的KNOPPIX,基于Debian的Linux发行
- 去阿尼网,人人都是俊男美女
- Flutter FutureBuilder 异步UI神器
- oracle横向合并两张表,SQL中将两个表合并成一个新表 SQL如何合并两个表并生成一个新表?...
- 什么是存储虚拟化?为什么需要它?
- thinkpad 驱动下载
- 值得收藏|40000字 Matplotlib 实操干货
- S3C2440—7.存储控制器访问外设
- 工作几年,涨薪3K遭拒,后一天我就裸辞走了···
- python入门很简单 洪锦魁_Python入门(基础篇)