也许,你只是看见了FMDB的第三方的功能是多么的强大、今天,Biaoac给大家介绍一个我最近获得的一个关于第三方登陆的工具——友盟

// 需要引入框架
// 1. SystemConfiguration.framework
// 2. CoreGraphics.framework
// 3. libsqlite3.dylib
// 4. CoreTelephony.framework
// 5. libstdc++.dylib,
// 6. libz.dylib// 下载最新的SDK,http://dev.umeng.com/social/ios/sdk-download

// 将UMSocial_Sdk-x.x.x的文件夹拖入工程目录下
// libUMSocial_Sdk-x.x.x.a  libUMSocial_Sdk_comment_3.0.a   库文件
// Header  头文字
// SocialSDKXib     xib文件
// en.Iproj, zh-Hans.Iproj  英文和中文语言文件
// frameworks   使用的第三方SDK,里面的Wechat,TencentOperAPI,TencentWeiboSSO,分别代表微信、手机QQ和腾讯微博SDK

// 设置友盟分享

[UMSocialData setAppKey:@"52b13dc556240b55870e7148"];

// 设置手机QQ的使用

[UMSocialConfig setQQAppId:@"100424468" url:nil importClasses:@[[QQApiInterface class], [TencentOAuthclass]]];

// 设置微信功能

[UMSocialConfig setWXAppId:@"wx34bd7147c4d8ad5a" url:nil];

#pragma mark 使用第三方登录需要重写下面两个方法

- (void)applicationDidBecomeActive:(UIApplication *)application

{

// 登录需要编写

[UMSocialSnsService applicationDidBecomeActive];

}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation

{

return [UMSocialSnsService handleOpenURL:url wxApiDelegate:nil];

}

#pragma mark 直接分享

- (IBAction)share:(id)sender

{

// 设置分享内容与分享平台

// 弹出UIActivityViewController样式的列表

[UMSocialSnsService presentSnsIconSheetView:self appKey:Nil shareText:@"要分享的内容" shareImage:nilshareToSnsNames:@[UMShareToQzone, UMShareToSina, UMShareToTencent, UMShareToRenren, UMShareToSms,UMShareToEmail, UMShareToFacebook, UMShareToTwitter, UMShareToWechatSession, UMShareToWechatTimeline, UMShareToQQ] delegate:nil];

}

#pragma mark 自定义分享平台的图标、文字、点击事件

- (IBAction)diyPlatformInfo:(id)sender

{

// 获取到新浪微博分享平台

UMSocialSnsPlatform *sinaPlatform = [UMSocialSnsPlatformManagergetSocialPlatformWithName:UMShareToSina];

// 设置平台图片

sinaPlatform.bigImageName = @"sina_icon@2x.png";

// 设置平台名称

sinaPlatform.displayName = @"新浪的微博";

// 设置点击平台图标的事件

sinaPlatform.snsClickHandler = ^(UIViewController *presentingController, UMSocialControllerService*socialControllerService, BOOL isPresentInController) {

NSLog(@"点击了新浪微博分享");

};

// 弹出UITableView样式的分享列表

[UMSocialSnsService presentSnsController:self appKey:nil shareText:@"要分享的内容" shareImage:nilshareToSnsNames:@[UMShareToSina] delegate:nil];

}

#pragma mark 设置分享的类型

- (IBAction)shareType:(id)sender

{

// 设置分享音乐类型

[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeMusic];

// 设置图片类型并附带网址

[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeImageurl:@"http://baike.steelhome.cn/uploads/200912/1262062983nmcUZA6K.jpg"];

// 设置视频类型,并附带网址

[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeVideourl:@"http://www.baidu.com/video/benshankuaileying/4324343244320.mp4"];

// 显示各个平台类型

[UMSocialSnsService presentSnsIconSheetView:self appKey:Nil shareText:@"要分享的内容" shareImage:nilshareToSnsNames:@[UMShareToSina] delegate:nil];

}

#pragma mark 分享到QQ

- (IBAction)shareToQQ:(id)sender

{

[UMSocialSnsService presentSnsIconSheetView:self appKey:nil shareText:@"发送分享内容" shareImage:nilshareToSnsNames:@[UMShareToQQ] delegate:nil];

}

#pragma mark 微信分享

- (IBAction)shareWeiXin:(id)sender

{

// 设置微信分享应用类型,用户点击消息将跳转到应用,或者到下载页面

// UMSocialWXMessageTypeImage为图片类型

[UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeApp;

// 分享图盘到微信朋友圈显示字数比较少,只显示分享标题

[UMSocialData defaultData].extConfig.title = @"朋友圈分享内容";

// 显示分享平台

[UMSocialSnsService presentSnsController:self appKey:nil shareText:@"分享的内容" shareImage:nilshareToSnsNames:@[UMShareToWechatSession, UMShareToWechatTimeline] delegate:nil];

}

#pragma mark 第三方登录

- (IBAction)otherLogin:(id)sender

{

// 使用Sina微博账号登录

UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManagergetSocialPlatformWithName:UMShareToSina];

snsPlatform.loginClickHandler(self, [UMSocialControllerService defaultControllerService], YES, ^(UMSocialResponseEntity *response) {

NSLog(@"response is %@", response);

// 如果是授权到新浪微博,SSO之后如果想获取用户的昵称、头像等需要再获取一次账户信息

[[UMSocialDataService defaultDataService]requestSocialAccountWithCompletion:^(UMSocialResponseEntity *response) {

// 打印用户昵称

NSLog(@"SinaWeibo's user name is %@", [[[response.data objectForKey:@"accounts"]objectForKey:UMShareToSina] objectForKey:@"username"]);

}];

});

}

注意:

文/jackiehoo(简书作者)
原文链接:http://www.jianshu.com/p/866bfc5fac25
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

接入第三方登录,必须要判断用户是否安装该第三方客户端,否则苹果可能审核无法通过。血的教训。
  比如我接入了QQ登录功能,程序会客户端是否安装了QQ,如果未安装则隐藏QQ登录图标。

    if (![QQApi isQQInstalled]) { self.QQLoginButton.hidden = YES; self.QQLoginLabel.hidden = YES;}

转载于:https://www.cnblogs.com/Biaoac/p/5312640.html

IOS开发之第三方登陆——友盟相关推荐

  1. 2018年最全iOS开发之第三方库

    最全iOS开发之第三方库 最新增加 EAIntroView 一个灵活的介绍界面,可以用作引导页 UI 下拉刷新 EGOTableViewPullRefresh– 最早的下拉刷新控件. SVPullTo ...

  2. iOS开发常用第三方开源框架

    iOS开发-常用第三方开源框架倾情整理!简书:https://www.jianshu.com/p/29cb22b13d79 iOS第三方库大全:https://blog.csdn.net/kanggu ...

  3. iOS开发 常用第三方开源框架

    iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报 开源框架 图像: 1.图片浏览控件MWPhotoBrowse ...

  4. iOS开发第三方篇——友盟的哪些坑

    友盟 1.微信不回调 原因: //9.0后的方法 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDi ...

  5. 猫猫学习ios 之第三方登录友盟实现

    一:集成友盟分享 做第三方登录现在大多数用友盟,友盟之中做第三方登录的时候首先下载sdk,然后自己看文档,其实友盟的官方文档写的已经十分清楚了,这里自己写写,做一下笔记 二:详细 友盟:http:// ...

  6. 史上最全iOS开发之第三方库整理汇总

    UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITable ...

  7. iOS开发常用第三方库

    UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...

  8. iOS开发-Umeng第三方登录-个人整理

    官方网址: http://dev.umeng.com/social/ios/operation#2 一.注册友盟账号 登陆友盟官网,在我的产品页面添加新应用,然后获取到Appkey. http://w ...

  9. iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)--(转)

    图像:  1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.  ...

  10. (转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

    图像: 1.图片浏览控件MWPhotoBrowser  实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...

最新文章

  1. SAP CRM呼叫中心里的Java stack
  2. 测试用例设计--判定表
  3. 新手必学的Mac使用技巧
  4. 【C++_typedef_疑难定义收集整理】
  5. Android中添加CallStack
  6. springcloud euraka 与springboot 兼容问题
  7. 学完了Hadoop,我总结了这些重点
  8. java和c制作游戏软件,游戏软件制作,游戏软件制作入门教程
  9. Linux-Ubuntu系统配置深度学习环境搭建
  10. 实用的签到、日程表日历控件(可扩展)
  11. PLC转行嵌入式软件开发的辛路历程
  12. 资产管理3大重要性,你还不知道吗?
  13. groovy快速上手第2篇:数据类型篇
  14. 系统配置msconfig 打不开的解决方法
  15. 为什么我们看到镜子中的自己是左右颠倒的
  16. 写给高端大气上档次的你!
  17. python语音对话查询起始路和目的地_查询通话记录详情
  18. 微信相册服务器偷懒,微信不做纯属偷懒?这款夜间模式神器刷新你三观
  19. Flutter 自定义打开drawer
  20. java打开word文件名乱码怎么解决_Word文档乱码怎么办?解决Word文档乱码的几种常见方法...

热门文章

  1. 使用Rotativa在ASP.NET Core MVC中创建PDF
  2. 一个发散动画的菜单控件(主要记录控件x,y坐标的运动状况)
  3. anaconda下载 (清华镜像)
  4. [C++]实现10以内整数的简单科学计算器
  5. am335x sd卡启动系统参数设置
  6. XE4 TStringDynArray 比 c6 的TStringList 好用 字符串 分解 分割 转换 TByteDynArray
  7. Struct1中 Form表单提交的几种方式以及无刷新提交的方式
  8. 我对Asp.net页面一系列执行过程的认识
  9. 原生js获取execl里面的值 主要使用ActiveXObject
  10. Swarm Mode服务管理