1. 獲取友盟Appkey
- 如果你尚未在友盟注冊開發(fā)者賬號雇庙,需要先注冊鱼鼓,注冊之后登錄你的賬號哪怔,點擊
添加新應用
宣蔚,填寫完應用基本信息后,將進入"下載SDK并添加代碼"頁面认境,此頁面即可得到Appkey件已。 - 如果你之前已經(jīng)在友盟注冊了應用,可以繼續(xù)使用它的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
文件夾拖入工程目錄:
2.3 創(chuàng)建橋接
具體如何橋接這里就不說明了庞萍,我們需要在橋接文件中包含以下兩個頭文件
#import "UMSocial.h"
#import "UMSocialSinaSSOHandler.h"
2.4 設置AppKey
在AppDelegate內(nèi)設置友盟AppKey
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// 設置Appkey
UMSocialData.setAppKey("5608de9de0f55afaae0018e6")
return true
}
2.5 添加實現(xiàn)代碼
在新浪微博登錄按鈕中實現(xiàn)下面的方法
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)")
}
})
在授權完成后調(diào)用獲取用戶信息的方法
//獲取accestoken以及新浪用戶信息燎悍,得到的數(shù)據(jù)在回調(diào)Block對象形參respone的data屬性
UMSocialDataService.defaultDataService().requestSnsInformation(UMShareToSina) { (response) -> Void in
print(response.data)
}
3. SSO配置
使用SSO授權方式,在用戶安裝了微博客戶端并登錄時,可以在分享過程中不需要輸入賬號密碼裙盾,直接通過微博客戶端授權,隨后進行網(wǎng)頁分享择膝,免去了用戶輸入密碼的過程奢米。 在用戶未安裝客戶端時,則自動跳轉(zhuǎn)到網(wǎng)頁授權方式讶迁,微博SSO授權友盟提供了微博原生SDK與非原生SDK兩種方式连茧,本文介紹的是微博原生SDK。
3.1 添加相關系統(tǒng)庫文件
在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
3.2 添加URL schemes
在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,格式為“wb”+新浪appkey祟峦,例如“wb126663232”
3.3 在AppDelegate文件集成相應的開關方法:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//打開新浪微博的SSO開關罚斗,設置新浪微博回調(diào)地址,這里必須要和你在新浪微博后臺設置的回調(diào)地址一致宅楞。若在新浪后臺設置我們的回調(diào)地址针姿,“http://sns.whalecloud.com/sina2/callback”袱吆,這里可以傳nil
UMSocialSinaSSOHandler.openNewSinaSSOWithAppKey("2923156246", redirectURL: "http://sns.whalecloud.com/sina2/callback")
return true
}
3.4 在AppDelegate文件里面實現(xiàn)下面的系統(tǒng)回調(diào)方法
func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool {
return UMSocialSnsService.handleOpenURL(url)
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return UMSocialSnsService.handleOpenURL(url)
}}
4. 適配iOS9系統(tǒng)
- iOS9網(wǎng)絡傳輸適配
在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并設置為YES,指定所有HTTP連接都可正常請求
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
- 應用跳轉(zhuǎn)白名單
如果你的應用使用了如SSO授權登錄或跳轉(zhuǎn)分享功能距淫,在iOS9下就需要增加一個可跳轉(zhuǎn)的白名單绞绒,指定對應跳轉(zhuǎn)App的URL Scheme,否則將在第三方平臺判斷是否跳轉(zhuǎn)時用到的canOpenURL時返回NO榕暇,進而只進行webview授權或授權/分享失敗处铛。
同樣在info.plist的LSApplicationQueriesSchemes下增加:
<key>LSApplicationQueriesSchemes</key>
<array>
<!-- 新浪微博 URL Scheme 白名單-->
<string>sinaweibohd</string>
<string>sinaweibo</string>
<string>sinaweibosso</string>
<string>weibosdk</string>
<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