SwiftObject-C

iOS QQ、微信、新浪微博原生分享和登录

2017-04-12  本文已影响577人  古子林

闲话少说,直奔主题。

我们的APP有一个分享到第三方平台的需求,最开始的时候我用的是uemng的SDK做的,但是随着我们应用需求不断的改变和umengSDK的不断更新,烦恼的问题越来越多。大致有一下几点:

1.umeng不同版本的分享界面总是变来变去,这让我跟Android的界面总是出现差异;

2.umeng最近的更新速度越来越快,改动也越来越大,甚至连分享的头文件和接口都变了,更新版本后还要改动代码,实在是烦;

3.最新版的SDK不再支持自定义界面(6.xx具体从哪个版本我记不清了)。

为了彻底解决这样的烦恼,我决定自己直接集成第三方平台原生的SDK。这样用起来就会更加的灵活。

QQ:

1.登录 腾讯开发平台 注册账号并完成认证。

2. 选择应用接入

3.创建应用

4.选择对应的平台,选择创建应用(此时已经分配了APP ID和APP KEY)

5.填写相关信息应用小图标将会显示在分享内容的底部,应用图标是授权登录界面显示的自己应用的图标。图标一定要按规定尺寸上传,且不能有透明度

6.终端信息是必须要选一个的。具体如何填写看下图

7.填写完成后提交审核就好了(不提交审核也能测试用)。

下载 QQSDK  我下面讲的是iOS_SDK_V3.1.3

环境搭建:

1.将 TencentOpenAPI.framework导入项目中。

2.增加URL Scheme,QQ +十六进制APP ID,不足八位在首部补0。(如appid=1105988369则scheme=QQ41EC0B11) tencent +十进制 APP ID。(如appid=1105988369则scheme=tencent1105988369);

3.添加SDK依赖的系统库文件。分别是”Security.framework”,“libiconv.dylib”,“SystemConfiguration.framework”,“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”。

4.在工程配置中的“Build Settings”中找到“Linking”配置区,给“Other Linker Flags”配置项添加属性值“-ObjC”(注意大小写)。

5.在Xcode 6.0以后创建工程时,默认可能没有单独设置Bundle display name属性值。但是因为SDK需要用到Bundle display name的值,所以务必请检查确保这个属性存在,如果没有请添加上。

6.授权登录白名单需添加(mqq,wtloginmqq2,mqqopensdkapiv3,mqqwpa,mqqopensdkapiv2,mqqopensdkssologin),分享白名单(mqqapi)。

下面包含QQ、微信和新浪微博所需的所有白名单

到此所有配置工作完成。

正式接入代码:

1.导入头文件 #import "TencentOpenAPI.framework/Headers/TencentOAuth.h"

2.初始化SDK

3.重写AppDelegate的application: openURL: options:方法(授权回调信息会走这里)

4.在代码中实现TencentSessionDelegate和TencentLoginDelegate协议中的方法(一些注意事项我在代码中标注了就不一一列出来说明了)

5.授权登录(授权登录信息会回调到上面的代理方法中)

关于授权信息说明如下,用户可根据需求添加

6.分享

分享纯文本内容(不支持QQ空间)

分享纯图片内容(不支持QQ空间)

分享网页内容(支持QQ好友和QQ空间)

分享音乐(支持QQ好友和QQ空间)

分享视频(支持QQ好友和QQ空间)

QQ内容到此结束。如果还想了解QQSDK的其他功能可以到  QQ开放平台--->应用接入--->资料库  中查看相关文档。

微信:

1.登录 微信开放平台 注册账号并完成认证。

2.选择移动应用开发

3.创建应用

4.填写应用信息

5.平台信息

6.填写完成后提交审核,微信大概需要7天(我申请一般是3-5个工作日)的时间审核。

7.审核通过后我们会得到一个AppID,AppSecret需要我们区生成(AppSecret平台不会帮我们保留,每次点生成都会生成一个新的)

8.生成AppSecret需要再次用在微信开放平台上注册的微信号的微信来扫码,且该微信号必须要是绑定了银行卡号的(因为申请登录授权需要收费)。

9.由于开通微信授权登录需要交300RMB,所以我这里就没有申请,不过后面会贴上授权登录的代码。

下载  微信SDK  我下面讲的是 WeChatOpenSDK1.7.6

环境搭建:

1.SDK文件包括 libWeChatSDK.a,WXApi.h,WXApiObject.h 三个文件导入项目中。

2.增加URL Scheme,微信AppID(如AppID=wx74dd36eeeca3be9f则scheme=wx74dd36eeeca3be9f)。

3.添加SDK依赖的系统库文件。分别是”SystemConfiguration.framework, libz.dylib, libsqlite3.0.dylib, libc++.dylib, Security.framework, CoreTelephony.framework, CFNetwork.framework”。

4.在工程配置中的“Build Settings”中找到“Linking”配置区,给“Other Linker Flags”配置项添加属性值“-ObjC”(注意大小写)。

5.授权登录和分享白名单需添加(wechat,weixin)。

正式接入代码:

1.导入头文件#import "WXApi.h"

2.初始化SDK

3.重写AppDelegate的application: openURL: options:方法(授权回调信息会走这里)

4.在代码中实现WXApiDelegate协议中的方法(授权登录和分享结果数据都会回调到onResp:方法中)

分享和登录授权回调 请求用户信息

5.授权登录(授权登录信息会回调到上面的代理方法onResp中)

登录流程是先调出微信登录授权页 —— 用户授权成功后(resp.errCode==0时)—— 用code获取用户access_token 和 openid —— 再用 access_token 和 openid 请求用户详细信息(昵称、性别、头像、地区等等)。

*  微信官方文档建议把获取用户token和用户信息的操作放在自己服务器处理,这样我们只需要把code传给自己的后台,让他们获取到用户信息后把用户信息返回给我们即可。

6.分享 (分享状态信息会回调到上面的代理方法onResp中)

分享纯文本内容

分享纯图片内容

分享网页内容

分享音乐

分享视频

微信内容到此结束。如果还想了解微信SDK的其他功能可以到  微信开放平台--->资源中心--->移动应用  中查看相关文档。

新浪微博:

1.登录 新浪微博开放平台 注册账号并完成认证。

2.选择移动应用

立即接入

继续创建

填写应用信息

授权回调页设置 (推荐使用默认地址:https://api.weibo.com/oauth2/default.html)

填写完成后保存信息,提交审核即可,由于我只是测试demo,所以审核是通不过的,但正是项目是没有问题的。不提交审核也能用作测试。

项目创建完成,开始集成WeiboSDK

下载 WeiboSDK  我下面讲的是WeiboSDK3.1.4

环境搭建:

1.将GitHub上下载的libWeiboSDK文件夹导入项目中,其中包含WeiboSDK.h、WeiboUser.h、WBHttpRequest.h、WBHttpRequest+WeiboUser.h、WBHttpRequest+WeiboGame.h、WBHttpRequest+WeiboShare.h、WBHttpRequest+WeiboToken.h、WBSDKBasicButton.h、WBSDKRelationshipButton.h、WBSDKCommentButton.h、WeiboSDK+Statistics.h、这11个.h文件以及libWeiboSDK.a和WeiboSDK.bundle,总共13个文件

2.增加URL Scheme,wb +App Key。(如App Key=3510022995则scheme=wb3510022995)。

3.添加SDK依赖的系统库文件。分别是”QuartzCore.framework、ImageIO.framework、SystemConfiguration.framework、Security.framework、CoreTelephony.framework、CoreText.framework、UIKit.framework、Foundation.framework、CoreGraphics.framework、libz.dylib、libsqlite3.dylib”。

4.在工程配置中的“Build Settings”中找到“Linking”配置区,给“Other Linker Flags”配置项添加属性值“-ObjC”(注意大小写)。

5.授权登录和分享白名单需添加(weibosdk2.5,weibosdk,sinaweibo,sinaweibohd)。

正式接入代码:

1.导入头文件#import "WeiboSDK.h"

2.初始化SDK

3.重写AppDelegate的application: openURL:sourceApplication:annotation:方法(授权回调信息会走这里,且我介绍的这个版本的回调只走这个方法)

4.在代码中实现WeiboSDKDelegate协议中的方法(授权登录和分享结果数据都会回调到didReceiveWeiboResponse:方法中)

注意:如果用户没有安装客户端或者不能跳转客户端的分享会走到else if 的判断里面。

5.授权登录(授权登录信息会回调到上面的代理方法didReceiveWeiboResponse:中)

6.分享 (分享状态信息会回调到上面的代理方法didReceiveWeiboResponse:中)

注意:新浪支持分享文本、图片和多媒体,三者可独立或组合分享,但分享内容不能为空,且不能同时分享图片和多媒体。

新浪微博内容到此结束。如果还想了解新浪SDK的其他功能可以到  新浪微博开放平台--->文档--->移动应用  中查看或下载相关文档和资源。

本想再加一个umeng使用说明的,但由于开头我说到的三点问题,想了想还是算了,想了解的可以私信我。

由于这篇文章是在写demo之后很久才整理的,可能在一些细节上讲的不够清楚或有出入。如有问题可在下面留言或私信我。

上一篇下一篇

猜你喜欢

热点阅读