Swift-友盟分享

1. 下載并安裝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 設(shè)置AppKey
在AppDelegate內(nèi)設(shè)置友盟AppKey

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    // 設(shè)置Appkey
    UMSocialData.setAppKey("5608de9de0f55afaae0018e6")
    return true
}

2.5 添加實(shí)現(xiàn)代碼
在新浪微博登錄按鈕中實(shí)現(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)")
    }
})

在授權(quán)完成后調(diào)用獲取用戶信息的方法

//獲取accestoken以及新浪用戶信息,得到的數(shù)據(jù)在回調(diào)Block對象形參respone的data屬性
UMSocialDataService.defaultDataService().requestSnsInformation(UMShareToSina) { (response) -> Void in
    print(response.data)
}

3. SSO配置

使用SSO授權(quán)方式,在用戶安裝了微博客戶端并登錄時,可以在分享過程中不需要輸入賬號密碼,直接通過微博客戶端授權(quán),隨后進(jìn)行網(wǎng)頁分享,免去了用戶輸入密碼的過程。 在用戶未安裝客戶端時,則自動跳轉(zhuǎn)到網(wǎng)頁授權(quán)方式,微博SSO授權(quán)友盟提供了微博原生SDK與非原生SDK兩種方式,本文介紹的是微博原生SDK。

3.1 添加相關(guān)系統(tǒng)庫文件
在other linker flags增加-ObjC 選項(xiàng),


并在Xcode中打開工程配置文件,選擇“Linked Frameworks and Libraries”一欄,點(diǎn)擊“+”圖標(biāo)添加下列庫文件:添加


ImageIO.framework Security.framework libiconv.dylib SystemConfiguration.framework CoreGraphics.Framework libsqlite3.dylib CoreTelephony.framework libstdc++.dylib libz.dylib

3.2 添加URL schemes
在工程->info->URL Types中添加 URL Schemes,格式為“wb”+新浪appkey,例如“wb126663232”

3.3 在AppDelegate文件集成相應(yīng)的開關(guān)方法:
http://open.weibo.com/apps

  func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {址,“http://sns.whalecloud.com/sina2/callback”,這里可以傳nil
    UMSocialSinaSSOHandler.openNewSinaSSOWithAppKey("新浪appkey", redirectURL: "http://sns.whalecloud.com/sina2/callback")

    return true
}

3.4 在AppDelegate文件里面實(shí)現(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)絡(luò)傳輸適配

在info.plist的App Transport Security Settings下新增Allow Arbitrary Loads并設(shè)置為YES,指定所有HTTP連接都可正常請求

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>
  • 應(yīng)用跳轉(zhuǎn)白名單

如果你的應(yīng)用使用了如SSO授權(quán)登錄或跳轉(zhuǎn)分享功能,在iOS9下就需要增加一個可跳轉(zhuǎn)的白名單,指定對應(yīng)跳轉(zhuǎn)App的URL Scheme,否則將在第三方平臺判斷是否跳轉(zhuǎn)時用到的canOpenURL時返回NO,進(jìn)而只進(jìn)行webview授權(quán)或授權(quán)/分享失敗。
同樣在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>

提示,如果程序報(bào)以下錯誤:

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設(shè)置為No

最后附上示例Demo的github地址:https://github.com/laichunhui/UMSocialLogin_Sina

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容