添加新应用
,填写完应用基本信息后,将进入"下载SDK并添加代码"页面,此页面即可得到Appkey。 如果你之前已经在友盟注册了应用,可以继续使用它的Appkey。 2. 下载并安装SDK 2.1 下载SDK 最新版SDK下载地址:http://dev.umeng.com/social/ios/sdk-download
2.2 加入SDK
将UMSocial_Sdk_x.x.x
的文件夹以及UMSocial_Sdk_Extra_Frameworks
目录下的SinaSSO
文件夹拖入工程目录:
具体如何桥接这里就不说明了,我们需要在桥接文件中包含以下两个头文件
#import "UMSocial.h""UMSocialSinaSSOHandler.h"2.4 设置AppKey
在AppDelegate内设置友盟AppKey
func application(application: UIApplication,dIDFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // 设置Appkey UMSocialData.setAppKey("5608de9de0f55afaae0018e6") return true}2.5 添加实现代码
在新浪微博登录按钮中实现下面的方法
let snsPlatform: UMSocialSnsPlatform = UMSocialSnsPlatformManager.getSocialPlatformWithname(UMSharetoSina)snsPlatform.loginClickHandler(self,UMSocialControllerService.defaultControllerService(),true,{response in if response.responseCode == UMSResponseCodeSuccess { let snsAccount:UMSocialAccountEntity = UMSocialAccountManager.socialAccountDictionary()[UMSharetoSina] as! UMSocialAccountEntity print("username is \(snsAccount.username),uID is \(snsAccount.usID),token is \(snsAccount.accesstoken) url is \(snsAccount.iconURL)") }})
在授权完成后调用获取用户信息的方法
//获取accestoken以及新浪用户信息,得到的数据在回调Block对象形参respone的data属性UMSocialDataService.defaultDataService().requestSnsinformation(UMSharetoSina) { (response) -> VoID in print(response.data)}3. SSO配置
使用SSO授权方式,在用户安装了微博客户端并登录时,可以在分享过程中不需要输入账号密码,直接通过微博客户端授权,随后进行网页分享,免去了用户输入密码的过程。 在用户未安装客户端时,则@R_404_6144@到网页授权方式,微博SSO授权友盟提供了微博原生SDK与非原生SDK两种方式,本文介绍的是微博原生SDK。
3.1 添加相关系统库文件 在Xcode中打开工程配置文件,选择“linked Frameworks and librarIEs”一栏,点击“+”图标添加下列库文件:
在other linker flags增加-ObjC 选项,并添加ImageIO.framework
Security.framework
libiconv.dylib
SystemConfiguration.framework
CoreGraphics.Framework
libsqlite3.dylib
CoreTelephony.framework
libstdc++.dylib
libz.dylib
在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes,格式为“wb”+新浪appkey,例如“wb126663232”
3.3 在AppDelegate文件集成相应的开关方法:Bool { //打开新浪微博的SSO开关,设置新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。若在新浪后台设置我们的回调地址,“http://sns.whalecloud.com/sina2/callback”,这里可以传nil UMSocialSinaSSOHandler.openNewSinaSSOWithAppKey("2923156246",redirectURL: "http://sns.whalecloud.com/sina2/callback") return true}3.4 在AppDelegate文件里面实现下面的系统回调方法
Bool { return UMSocialSnsService.handleOpenURL(url) } UMSocialSnsService.handleOpenURL(url) }}4. 适配iOS9系统
iOS9网络传输适配
在info.pList的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有http连接都可正常请求
<key>NSAppTransportSecurity</key><dict> <key>NSAllowsArbitraryLoads</key> <true/></dict>
应用跳转白名单
如果你的应用使用了如SSO授权登录或跳转分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canopenURL时返回NO,进而只进行webvIEw授权或授权/分享失败。
同样在info.pList的LSApplicationQuerIEsSchemes下增加:
key>LSApplicationQuerIEsSchemes</array><!-- 新浪微博 URL Scheme 白名单--> <string>sinaweibohd</string> <string>sinaweibo</string>sinaweibosso</string>weibosdk</string>weibosdk2.5</string></array>
提示,如果程序报以下错误:
ld: ‘/Users/**/Framework/SDKs/polymerPay/library/mobStat/lib**SDK.a(**ForSDK.o)’ does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE),obtain an updated library from the vendor,or disable bitcode for this target. for architecture arm64
可以在Build Settings中将Enable Bitcode设置为No
最后附上示例Demo的github地址:https://github.com/laichunhui/UMSocialLogin_Sina
总结以上是内存溢出为你收集整理的swift利用友盟实现新浪微博SSO授权登录全部内容,希望文章能够帮你解决swift利用友盟实现新浪微博SSO授权登录所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)