關於友盟分享


友盟分享不單單是申請友盟分享的key就行了,在進行qq.微信的分享時還需要再額外申請key才行。

 

以下是官方給出的使用具體操作方法:

 

由於蘋果審核政策需求,建議大家對未安裝客戶端平台進行隱藏,在設置QQ、微信AppID之后調用下面的方法,[UMSocialConfig hiddenNotInstallPlatforms:@[UMShareToQQ, UMShareToQzone, UMShareToWechatsession, UMShareToWechatTimeline]];

1.  分享流程介紹

1.1   設置友盟appkey

  • 獲取友盟Appkey。如果你之前已經在友盟注冊了應用,獲得了Appkey,可以繼續使用之前獲得Appkey。 

  • 如果你尚未在友盟注冊賬號,需要先注冊,注冊之后登錄你的賬號,點擊添加新應用,完成新應用填寫之后,將進入應用管理頁面。在該頁面就能得到Appkey

  • 在代碼中設置你的友盟Appkey,在 AppDelegate文件內設置你的AppKey:

#import "UMSocial.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [UMSocialData setAppKey:@"507fcab25270157b37000010"]; } 

1.2   使用各種不同的分享接口

1.2.1   使用默認UI風格

  • 適用人群:希望10分鍾集成從無到有實現分享的開發者
  • 接口說明:調用該接口將先彈出分享平台選擇頁,選擇相應的平台將進行授權並分享
//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空間、QQ好友、來往好友、來往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要參考各自的集成方法 //如果需要分享回調,請將delegate對象設置self,並實現下面的回調方法 [UMSocialSnsService presentSnsIconSheetView:self appKey:@"507fcab25270157b37000010" shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,http://umeng.com/social" shareImage:[UIImage imageNamed:@"icon"] shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToTencent,UMShareToRenren,nil] delegate:self]; 

現在會出現效果:
social

注意: 1. 支持分享編輯頁和授權頁面橫屏,必須要在出現列表頁面前設置:
[UMSocialConfig setSupportedInterfaceOrientations:UIInterfaceOrientationMaskLandscape]; 
2. 點擊每個平台后默認會進入內容編輯頁面,若想點擊后直接分享內容,可以實現下面的回調方法。

//彈出列表方法presentSnsIconSheetView需要設置delegate為self -(BOOL)isDirectShareInIconActionSheet { return YES; } 

實現回調方法(可選):

-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

1.2.2   使用分享API(自動授權后跳轉到內容編輯頁)

  • 適用人群:較深耕細作型開發者,希望自定義分享列表,使用分享底層API,但仍使用友盟提供的分享編輯頁。
  • 接口說明:如果已經授權,則直接跳轉到分享編輯頁,否則將進行授權操作然后再跳轉到分享編輯頁.相比presentSnsIconSheetView方法,該接口不需要彈出分享面板。該接口支持所有平台的分享(QQ好友,微信會有選擇好友的界面)。

(沒有授權則進入授權頁面,完成授權后再進入編輯頁面。)

#import "UMSocial.h" …… //注意:分享到微信好友、微信朋友圈、微信收藏、QQ空間、QQ好友、來往好友、來往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要參考各自的集成方法 [[UMSocialControllerService defaultControllerService] setShareText:@"分享內嵌文字" shareImage:[UIImage imageNamed:@"icon"] socialUIDelegate:self]; //設置分享內容和回調對象 [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina].snsClickHandler(self,[UMSocialControllerService defaultControllerService],YES); 

注意:若彈出橫屏的頁面,必須要在出現編輯頁面前設置
[UMSocialConfig setSupportedInterfaceOrientations:UIInterfaceOrientationMaskLandscape];

實現回調方法(可選):

-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

1.2.3   直接分享底層接口(自動檢查授權)

  • 適用人群:較深耕細作型開發者,希望自定義分享列表,希望授權和分享發生,使用分享底層API並自動授權。
  • 直接發送微博到對應的微博平台,僅支持分享到一個平台,可以傳入文字、圖片、地理位置、url資源。圖片、地理位置和url資源可以設為nil。
    只發送到一個微博平台,且該平台沒有先授權,SDK會自動打開授權頁面,授權完成之后再發送微博。
//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空間、QQ好友、來往好友、來往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要參考各自的集成方法 [[UMSocialDataService defaultDataService] postSNSWithTypes:@[UMShareToSina] content:@"分享內嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

1.2.4   直接分享底層接口(授權 + 分享接口分離)

  • 適用人群:深耕細作型開發者,希望完全自定義界面,只使用分享相關底層API實現分享。
  • 接口說明:實現"授權+直接分享",你可以將授權接口(doOauthVerify)跟直接分享接口(directShare)結合起來使用。實現只需簡單的幾步:
    步驟一:定義自己的分享面板 
    步驟二:實現用戶授權(首先判斷是否已經授權過,否則會重復授權)
    //判斷是否授權 //注意:分享到微信好友、微信朋友圈、微信收藏、QQ空間、QQ好友、來往好友、來往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要參考各自的集成方法 [UMSocialAccountManager isOauthAndTokenNotExpired:UMShareToSina] //進入授權頁面 [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina].loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { //獲取微博用戶名、uid、token等 UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToSina]; NSLog(@"username is %@, uid is %@, token is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken); //進入你的分享內容編輯頁面 } }); 
> 彩蛋:如果您已經自己使用其他SDK實現了分享,不希望用戶重復授權,友盟分享提供了兼容方法。沒有這種奇葩行為的用戶請忽略此段:

    UMSocialAccountEntity *weiboAccount = [[UMSocialAccountEntity alloc] initWithPlatformName:UMShareToSina];
        weiboAccount.usid = @"your usid"; weiboAccount.accessToken = @"your accesstoken"; // weiboAccount.openId = @"tencent weibo openId"; //騰訊微博賬戶必需設置openId //同步用戶信息 [UMSocialAccountManager postSnsAccount:weiboAccount completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { //在本地緩存設置得到的賬戶信息 [UMSocialAccountManager setSnsAccount:weiboAccount]; //進入你自定義的分享內容編輯頁面或者使用我們的內容編輯頁面 }}]; 
**步驟三:調用直接分享API接口**

    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToSina] content:@"分享內嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *shareResponse){ if (shareResponse.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

設置支持的屏幕方向

支持分享編輯頁和授權頁面橫屏,必須要在出現列表頁面前進行下面,並在Xcode上的xxx_info.plist文件支持屏幕方向的字段'Supported interface orientations'增加相應的橫屏或者豎屏的枚舉值。 
    //根據你要支持的方向,UIInterfaceOrientationMaskLandscape設置成相應的方向 [UMSocialConfig setSupportedInterfaceOrientations:UIInterfaceOrientationMaskLandscape]; 

處理分享錯誤

用下面的代碼打開我們SDK在控制台的輸出后能看到相應的錯誤碼。

    [UMSocialData openLog:YES]; 

1.3   各平台SSO(免登錄)配置

注意:使用各平台SSO分享,需要到各個微博平台申請自己的應用,綁定方法可以參考綁定第三方賬號到友盟后台。 

1.3.1  步驟1. 添加URL scheme

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes。如果使用的是Xcode3或更低版本,則需要在plist文件中添加。獲取各個平台appkey或者appid的方法可以參考分享詳細文檔綁定各個平台部分,各個平台的url scheme格式如下表:

平台  url scheme設置格式
新浪微博(使用微博原生SDK) “wb”+新浪appkey,例如“wb126663232”
新浪微博(非微博原生SDK) “sina.”+友盟appkey,例如“sina.507fcab25270157b37000010”
騰訊微博 “wb”+你在友盟后台綁定的騰訊微博App Key,例如“wb801345073”
微信 微信應用appId,例如“wxd9a39c7122aa6516”,微信詳細集成步驟參考微信集成方法
人人網 “rm”+你的應用bundle id,例如“rmcom.umeng.SocialSDK”
QQ、QQ空間 需要添加兩個URL schemes 1. “QQ”+騰訊QQ互聯應用appId轉換成十六進制(不足8位前面補0),例如“QQ05FC5B14”。生成十六進制方法:點擊鏈接,並在QQ互聯后台的URL schema中填入此字符串保持一致。2.“tencent“+騰訊QQ互聯應用Id,例如“tencent100424468" ,QQ及Qzone詳細集成步驟參考手機QQ集成方法
來往 Identifier填“Laiwang”,URL Schemes填來往AppId.注意使用來往SDK后,Xcode工程other linker flags需要添加-ObjC參數
易信 易信Appkey,例如“yx35664bdff4db42c2b7be1e29390c1a06”
Facebook 默認使用iOS自帶的Facebook分享framework,在iOS 6以上有效,若要使用我們提供的facebook分享需要設置“fb”+facebook AppID,例如“fb1440390216179601”,詳細集成方法見集成facebook

socialbar

  • 在AppDelegate文件集成相應的開關方法:
#import "UMSocial.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //設置友盟社會化組件appkey [UMSocialData setAppKey:UmengAppkey]; //設置微信AppId、appSecret,分享url [UMSocialWechatHandler setWXAppId:@"wxd930ea5d5a258f4f" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@"http://www.umeng.com/social"]; //設置手機QQ 的AppId,Appkey,和分享URL,需要#import "UMSocialQQHandler.h" [UMSocialQQHandler setQQWithAppId:@"100424468" appKey:@"c7394704798a158208a74ab60104f0ba" url:@"http://www.umeng.com/social"]; //打開新浪微博的SSO開關,設置新浪微博回調地址,這里必須要和你在新浪微博后台設置的回調地址一致。若在新浪后台設置我們的回調地址,“http://sns.whalecloud.com/sina2/callback”,這里可以傳nil ,需要 #import "UMSocialSinaHandler.h" [UMSocialSinaHandler openSSOWithRedirectURL:@"http://sns.whalecloud.com/sina2/callback"]; //打開騰訊微博SSO開關,設置回調地址,需要 #import "UMSocialTencentWeiboHandler.h" [UMSocialTencentWeiboHandler openSSOWithRedirectUrl:@"http://sns.whalecloud.com/tencent2/callback"]; //打開人人網SSO開關,需要 #import "UMSocialRenrenHandler.h" [UMSocialRenrenHandler openSSO]; //設置易信Appkey和分享url地址,注意需要引用頭文件 #import UMSocialYixinHandler.h [UMSocialYixinHandler setYixinAppKey:@"yx35664bdff4db42c2b7be1e29390c1a06" url:@"http://www.umeng.com/social"]; //設置來往AppId,appscret,顯示來源名稱和url地址,注意需要引用頭文件 #import "UMSocialLaiwangHandler.h" [UMSocialLaiwangHandler setLaiwangAppId:@"8112117817424282305" appSecret:@"9996ed5039e641658de7b83345fee6c9" appDescription:@"友盟社會化組件" urlStirng:@"http://www.umeng.com/social"]; //設置Facebook,AppID和分享url,需要#import "UMSocialFacebookHandler.h" //默認使用iOS自帶的Facebook分享framework,在iOS 6以上有效。若要使用我們提供的facebook分享需要使用此開關: [UMSocialFacebookHandler setFacebookAppID:@"1440390216179601" shareFacebookWithURL:@"http://www.umeng.com/social"]; //默認使用iOS自帶的Twitter分享framework,在iOS 6以上有效。若要使用我們提供的twitter分享需要使用此開關: [UMSocialTwitterHandler openTwitter]; } 

1.3.2  步驟2. 在AppDelegate文件里面實現下面三個系統回調方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

若你除了使用我們SDK外,還用了其他SDK,需要重寫此回調方法的,可以參考下面的寫法:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { BOOL result = [UMSocialSnsService handleOpenURL:url]; if (result == FALSE) { //調用其他SDK,例如新浪微博SDK等 } return result; } 

1.3.3  步驟3. 添加系統庫文件(不使用QQ空間和手機QQ的SSO功能可以忽略此步驟)

  • 添加SDK依賴的系統庫文件。

    在Xcode中打開工程配置文件,選擇“summary”一欄。在“summary”中選擇“Linked Frameworks and Libraries”一欄,點擊“+”圖標添加下面八個庫文件,分別是

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

2.  添加微信及朋友圈

 

 

2.1  注冊應用

使用微信分享首先需要在微信開放平台(點擊鏈接)申請, 按照要求填寫應用信息,審核通過后獲取到微信APPID和APPsecret

 

2.2  添加相關文件

UMSocial_Sdk_Extra_Frameworks目錄下,添加Wechat文件夾到工程

 

2.3  添加微信

 

2.3.1  添加微信及朋友圈到分享列表

在你的程序APPdelegate入口方法添加下面的代碼

  #import "UMSocialWechatHandler.h" //設置微信AppId、appSecret,分享url [UMSocialWechatHandler setWXAppId:@"wxd930ea5d5a258f4f" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@"http://www.umeng.com/social"]; 
  • 如果不添加上面的代碼,則分享列表中不會出現微信及朋友圈圖標
  • URL必須為http鏈接,如果設置為nil則默認為友盟官網鏈接 

 

2.3.2  配置URL schemes

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,添加xcode的url scheme為微信應用appId,例如“wxd9a39c7122aa6516”

 

2.3.3  添加系統回調

在APPdelegate中實現下面兩個系統回調方法:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

 

2.4  設置分享內容

 

2.4.1  默認分享樣式

使用友盟默認分享UI頁面,分享到微信好友、微信朋友圈、微信收藏

    [UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,www.umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToWechatFavorite] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

 

2.4.2  自定義分享樣式

使用自定義分享面板,則在對於的微信分享按鈕中實現下面的方法

    //使用UMShareToWechatSession,UMShareToWechatTimeline,UMShareToWechatFavorite分別代表微信好友、微信朋友圈、微信收藏 [[UMSocialDataService defaultDataService] postSNSWithTypes:@[UMShareToWechatSession] content:@"分享內嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

 

2.4.3  設置點擊分享內容跳轉鏈接

當分享消息類型為圖文時,點擊分享內容會跳轉到預設的鏈接,設置方法如下

[UMSocialData defaultData].extConfig.wechatSessionData.url = @"http://baidu.com"; 

如果是朋友圈,則替換平台參數名即可

[UMSocialData defaultData].extConfig.wechatTimelineData.url = @"http://baidu.com"; 

注意設置的鏈接必須為http鏈接

 

2.4.4  設置title

設置微信好友title方法為

[UMSocialData defaultData].extConfig.wechatSessionData.title = @"微信好友title"; 

設置微信朋友圈title方法替換平台參數名即可

[UMSocialData defaultData].extConfig.wechatTimelineData.title = @"微信朋友圈title"; 

微信朋友圈分享消息只顯示title

 

2.4.5  設置分享消息類型

微信分享消息類型分為圖文、純圖片、純文字、應用三種類型,默認分享類型為圖文分享,即展示分享文字及圖片縮略圖,點擊后跳轉到預設鏈接

純圖片分享類型方法為

[UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeImage;

純圖片分享類型沒有文字,點擊圖片可以查看大圖

純文字分享類型方法為

[UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeText;

純文字分享類型沒有圖片,點擊不會跳轉

應用分享類型方法

[UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeApp;

應用分享類型點擊分享內容后跳轉到應用下載頁面,下載地址自動抓取開發者在微信開放平台填寫的應用地址,如果用戶已經安裝應用,則打開APP

3.  新浪微博分享

 

 

3.1  注冊應用

在微博開放平台(點擊鏈接)注冊應用,完整填寫相關應用信息,並且審核通過,未審核應用會遇到5034錯誤碼,詳情參考文檔

 

3.2  添加相關文件

解壓SDK壓縮包,將形如UMSocial_Sdk_x.x.x的文件夾拖入工程目錄 

3.3  使用SSO授權方式

使用SSO授權方式,在用戶安裝了微博客戶端並登錄時,可以在分享過程中不需要輸入賬號密碼,直接通過微博客戶端授權,隨后進行網頁分享,免去了用戶輸入密碼的過程。 在用戶未安裝客戶端時,則自動跳轉到網頁授權方式,微博SSO授權我們提供微博原生SDK與非原生SDK兩種方式,選擇其中一種即可。

3.3.1  添加相關庫文件(使用微博原生SDK)

解壓下載文件夾,將SinaSSO文件夾添加到工程。

在other linker flags增加-ObjC 選項,並添加ImageIO 系統framework

3.3.2  配置URL schemes(使用微博原生SDK)

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,格式為“wb”+新浪appkey,例如“wb126663232”

3.3.3  添加SSO授權開關(使用微博原生SDK)

在APPdelegate中集成新浪微博開關

  #import "UMSocialSinaSSOHandler.h" //打開新浪微博的SSO開關,設置新浪微博回調地址,這里必須要和你在新浪微博后台設置的回調地址一致。若在新浪后台設置我們的回調地址,“http://sns.whalecloud.com/sina2/callback”,這里可以傳nil [UMSocialSinaSSOHandler openNewSinaSSOWithRedirectURL:@"http://sns.whalecloud.com/sina2/callback"]; 

回調URL必須和后台保持一致,否則會報錯redirect URL mismatch

安全域名設置必須為sns.whalecloud.com ,設置方法參考文檔

3.3.4  添加系統回調 (使用微博原生SDK)

在APPdelegate中實現下面的回調方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

3.3.5  添加相關庫文件(非微博原生SDK)

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把Sina文件夾添加到工程。

3.3.6  配置URL schemes(非微博原生SDK)

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,格式為“sina.”+友盟appkey,例如“sina.507fcab25270157b37000010”

3.3.7  添加SSO授權開關(非微博原生SDK)

在APPdelegate中集成新浪微博開關

#import "UMSocialSinaHandler.h" //打開新浪微博的SSO開關,設置新浪微博回調地址,這里必須要和你在新浪微博后台設置的回調地址一致。若在新浪后台設置我們的回調地址,“http://sns.whalecloud.com/sina2/callback”,這里可以傳nil [UMSocialSinaHandler openSSOWithRedirectURL:@"http://sns.whalecloud.com/sina2/callback"]; 

回調URL必須和后台保持一致,否則會報錯redirect URL mismatch

安全域名設置必須為sns.whalecloud.com ,設置方法參考文檔

 

3.3.8  添加系統回調(非微博原生SDK)

在APPdelegate中實現下面的回調方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

 

3.4  設置分享內容

 

3.4.1  使用默認分享界面

使用友盟默認提供的分享面板,調用下面的代碼 

[UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,http://umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToSina] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

使用上面的接口,將使用友盟默認的分享面板以及分享編輯頁 

 

3.4.2  使用自定義分享面板

使用自己定義的分享列表,但仍然使用友盟分享編輯頁,則使用下面的代碼

#import "UMSocial.h" [[UMSocialControllerService defaultControllerService] setShareText:@"分享內嵌文字" shareImage:[UIImage imageNamed:@"icon"] socialUIDelegate:self]; //設置分享內容和回調對象 [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina].snsClickHandler(self,[UMSocialControllerService defaultControllerService],YES); 

 

3.4.3  使用直接分享接口

直接分享接口,分享過程沒有分享編輯頁,適用於希望直接在后台進行分享或希望自定義分享編輯頁的開發者

[[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToSina] content:@"分享內嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *shareResponse){ if (shareResponse.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

 

3.5  分享多媒體資源

 

3.5.1  分享URL圖片

分享過程中一次只能上傳一個圖片,因此URL圖片和本地圖片不可共存,當兩者都存在時會默認忽略本地圖片

3.5.1.1  使用默認分享界面分享URL圖片

[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeImage url:@"http://www.baidu.com/img/bdlogo.gif"]; //調用快速分享接口 

在設置分享內容前調用即可 

3.5.1.2  使用自定義界面分享URL圖片

UMSocialUrlResource *urlResource = [[UMSocialUrlResource alloc] initWithSnsResourceType:UMSocialUrlResourceTypeImage url:
                                    @"http://www.baidu.com/img/bdlogo.gif"]; [[UMSocialDataService defaultDataService] postSNSWithTypes:@[UMShareToSina] content:@"分享內嵌文字" image:nil location:nil urlResource:urlResource presentedController:self completion:^(UMSocialResponseEntity *shareResponse){ if (shareResponse.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

 

3.5.2  分享本地gif圖片

分享本地gif圖片到各個開放平台,需要生成把本地gif圖片生成NSData對象,作為各個分享方法的shareImage參數,例如快速分享接口如下寫法。
分享png、jpg圖片則只需要生成UIImage,傳入到shareImage參數,不能使用這種寫法。

  //分享gif圖片 NSString *path = [[NSBundle mainBundle] pathForResource:@"picName" ofType:@"gif"]; NSData *gifData = [NSData dataWithContentsOfFile:path]; [UMSocialSnsService presentSnsIconSheetView:self appKey:UmengAppkey shareText:shareText shareImage:gifData shareToSnsNames:@[UMShareToSina] delegate:self]; //分享png、jpg圖片 [UMSocialSnsService presentSnsIconSheetView:self appKey:UmengAppkey shareText:shareText shareImage:[UIImage imageNamed:@"picName"] shareToSnsNames:@[UMShareToSina] delegate:self]; 

 

3.5.3  分享url音樂

分享URL音樂資源將UrlResourceType設置為Music即可

[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeMusic url:@"http://music.huoxing.com/upload/20130330/1364651263157_1085.mp3"]; //調用快速分享接口 

 

3.5.4  分享url視頻

分享URL視頻資源將UrlResourceType設置為Video即可

[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeVideo url:@"http://v.youku.com/v_show/id_XNjQ1NjczNzEy.html?f=21207816&ev=2"]; //調用快速分享接口 

 

3.6  關注官方微博

//usid為官方微博的uid [UMSocialConfig setFollowWeiboUids:@{UMShareToSina:@"12312312"}]; 

如果采用webview方式授權,則在授權頁面中顯示關注官方微博的復選框,如果采用SSO方式授權,則在分享編輯頁顯示關注微博復選框

如果希望直接靜默關注(不出現選項),則在代碼中添加下面的方法

//usid為官方微博的uid [[UMSocialDataService defaultDataService] requestAddFollow:UMShareToSina followedUsid:@[@"2937537507"] completion:nil]; 

4.  添加QQ及Qzone

 

 

4.1  注冊應用

使用QQ及Qzone分享首先在騰訊開放平台注冊應用,地址:http://open.qq.com 按照要求填寫,審核通過前需要添加測試賬號,否則會報錯110406或110404

 

4.2  添加相關文件

UMSocial_Sdk_Extra_Frameworks目錄下的,添加TencentOpenAPI文件夾到工程 添加下面幾個系統framework

在Xcode中打開工程配置文件,選擇“summary”一欄。在“summary”中選擇“Linked Frameworks and Libraries”一欄,點擊“+”圖標添加下面八個庫文件,分別是

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

 

4.3  添加QQ及Qzone

 

4.3.1  添加QQ及Qzone到分享列表

在AppDelegate應用入口方法打開集成手機QQ、Qzone開關

//設置分享到QQ/Qzone的應用Id,和分享url 鏈接 #import "UMSocialQQHandler.h" [UMSocialQQHandler setQQWithAppId:@"100424468" appKey:@"c7394704798a158208a74ab60104f0ba" url:@"http://www.umeng.com/social"]; 
  • 如果不添加上面的代碼,則分享列表中不會出現QQ及Qzone圖標
  • URL必須為http鏈接,如果設置為nil則默認為友盟官網鏈接 

 

4.3.2  配置URL schemes

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,設置Xcode的url scheme格式為“QQ”+騰訊QQ互聯應用appId轉換成十六進制(不足8位前面補0),例如“QQ05FC5B14”。並在QQ互聯后台的URL schema中填入此字符串保持一致。 額外設置 url schemes 的格式為"tencent"+騰訊QQ互聯應用appId,例如“tencent100424468”

如果 URL schemes 配置錯誤,則分享完成后無法返回應用

在Xcode 6.0創建工程時,默認可能沒有單獨設置Bundle display name屬性值。但是因為SDK需要用到Bundle display name的值,所以務必請檢查確保這個屬性存在,如果沒有請添加上。

 

4.3.3  添加系統回調

在APPdelegate中實現下面的方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

 

4.4  設置分享內容

 

4.4.1  默認分享樣式

使用友盟默認分UI界面,添加下面代碼

    [UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,www.umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToQQ,UMShareToQzone] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

Qzone分享文字與圖片缺一不可,否則會出現錯誤碼10001

 

4.4.2  自定義分享樣式

使用自定義分享UI界面,則在對應的QQ分享按鈕中實現下面的方法

    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToQQ] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

Qzone分享則替換平台參數為Qzone即可

    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToQzone] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

Qzone分享文字與圖片缺一不可,否則會出現錯誤碼10001

 

4.4.3  設置點擊分享內容跳轉鏈接

QQ設置點擊分享內容跳轉鏈接調用下面的方法

 [UMSocialData defaultData].extConfig.qqData.url = @"http://baidu.com"; 

Qzone設置點擊分享內容跳轉鏈接替換平台參數名即可

 [UMSocialData defaultData].extConfig.qzoneData.url = @"http://baidu.com"; 

 

4.4.4  設置title

QQ設置title方法為

 [UMSocialData defaultData].extConfig.qqData.title = @"QQ分享title"; 

Qzone設置title方法將平台參數名替換即可

 [UMSocialData defaultData].extConfig.qzoneData.title = @"Qzone分享title"; 

 

4.4.5  設置分享消息類型

QQ分享消息類型分為圖文、純圖片,QQ空間分享只支持圖文分享(圖片文字缺一不可)

QQ分享消息默認為圖文類型,設置純圖片類型方法為

[UMSocialData defaultData].extConfig.qqData.qqMessageType = UMSocialQQMessageTypeImage;

在調用分享代碼前調用即可

5.  配置URL schemes

5.1  為什么要配置 URL schemes

URL schemes 和跳出應用后返回應用的邏輯相關,因此如果使用了SSO授權功能或QQ、微信、webview方式的Facebook,就必須配置URL schemes,否則跳出應用后將無法返回

5.2  如何設置 URL schemes

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes。如果使用的是Xcode3或更低版本,則需要在plist文件中添加。獲取各個平台appkey或者appid的方法可以參考分享詳細文檔綁定各個平台部分,各個平台的url scheme格式如下表:

平台  url scheme設置格式
新浪微博 “sina.”+友盟appkey,例如“sina.507fcab25270157b37000010”
騰訊微博 “wb”+你在友盟后台綁定的騰訊微博App Key,例如“wb801345073”
微信 微信應用appId,例如“wxd9a39c7122aa6516”,微信詳細集成步驟參考微信集成方法
人人網 “rm”+你的應用bundle id,例如“rmcom.umeng.SocialSDK”
QQ、QQ空間 需要添加兩個URL schemes 1. “QQ”+騰訊QQ互聯應用appId轉換成十六進制(不足8位前面補0),例如“QQ05FC5B14”。生成十六進制方法:點擊鏈接,並在QQ互聯后台的URL schema中填入此字符串保持一致。2.“tencent“+騰訊QQ互聯應用Id,例如“tencent100424468" ,QQ及Qzone詳細集成步驟參考手機QQ集成方法
來往 Identifier填“Laiwang”,URL Schemes填來往AppId.注意使用來往SDK后,Xcode工程other linker flags需要添加-ObjC參數
易信 易信Appkey,例如“yx35664bdff4db42c2b7be1e29390c1a06”
Facebook 默認使用iOS自帶的Facebook分享framework,在iOS 6以上有效,若要使用我們提供的facebook分享需要設置“fb”+facebook AppID,例如“fb1440390216179601”,詳細集成方法見集成facebook

6.  添加SSO授權

 

 

6.1  SSO授權簡介

SSO指單點登錄,當用戶安裝了對應第三方客戶端且登錄時,可以在登錄時免去輸入賬號密碼的過程,簡化分享流程,目前友盟支持新浪、騰訊微博、人人網、QQ及Qzone平台,由於騰訊微博和人人網官方沒有提供64位SDK,因此選擇友盟64位版本下載時無法使用騰訊微博及人人網SSO功能。

6.2  新浪微博SSO

使用SSO授權方式,在用戶安裝了微博客戶端並登錄時,可以在分享過程中不需要輸入賬號密碼,直接通過微博客戶端授權,隨后進行網頁分享,免去了用戶輸入密碼的過程。 在用戶未安裝客戶端時,則自動跳轉到網頁授權方式,微博SSO授權我們提供微博原生SDK與非原生SDK兩種方式,選擇其中一種即可。

6.2.1  添加相關庫文件(使用微博原生SDK)

解壓下載文件夾,將SinaSSO文件夾添加到工程。

在other linker flags增加-ObjC 選項,並添加ImageIO 系統framework

6.2.2  配置URL schemes(使用微博原生SDK)

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,格式為“wb”+新浪appkey,例如“wb126663232”

6.2.3  添加SSO授權開關(使用微博原生SDK)

在APPdelegate中集成新浪微博開關

  #import "UMSocialSinaSSOHandler.h" //打開新浪微博的SSO開關,設置新浪微博回調地址,這里必須要和你在新浪微博后台設置的回調地址一致。若在新浪后台設置我們的回調地址,“http://sns.whalecloud.com/sina2/callback”,這里可以傳nil [UMSocialSinaSSOHandler openNewSinaSSOWithRedirectURL:@"http://sns.whalecloud.com/sina2/callback"]; 

回調URL必須和后台保持一致,否則會報錯redirect URL mismatch

安全域名設置必須為sns.whalecloud.com ,設置方法參考文檔

6.2.4  添加系統回調 (使用微博原生SDK)

在APPdelegate中實現下面的回調方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

6.2.5  添加相關庫文件(非微博原生SDK)

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把Sina文件夾添加到工程。

6.2.6  配置URL schemes(非微博原生SDK)

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,格式為“sina.”+友盟appkey,例如“sina.507fcab25270157b37000010”

6.2.7  添加SSO授權開關(非微博原生SDK)

在APPdelegate中集成新浪微博開關

#import "UMSocialSinaHandler.h" //打開新浪微博的SSO開關,設置新浪微博回調地址,這里必須要和你在新浪微博后台設置的回調地址一致。若在新浪后台設置我們的回調地址,“http://sns.whalecloud.com/sina2/callback”,這里可以傳nil [UMSocialSinaHandler openSSOWithRedirectURL:@"http://sns.whalecloud.com/sina2/callback"]; 

回調URL必須和后台保持一致,否則會報錯redirect URL mismatch

安全域名設置必須為sns.whalecloud.com ,設置方法參考文檔

6.2.8  添加系統回調(非微博原生SDK)

在APPdelegate中實現下面的回調方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

 

6.3  騰訊微博SSO

 

6.3.1  添加相關庫文件

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把TencentWeibo文件夾添加到工程。

 

6.3.2  配置URL schemes

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,格式為"wb"+你的騰訊微博App Key,例如“wb801345073”

 

6.3.3  添加SSO授權開關

在你的Appdelegate入口方法,添加下面的代碼

    //打開騰訊微博SSO開關,設置回調地址 [UMSocialTencentWeiboHandler openSSOWithRedirectUrl:@"http://sns.whalecloud.com/tencent2/callback"]; 

 

6.3.4  添加系統回調

在APPdelegate中實現下面的回調方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

 

6.4  人人網SSO

 

6.4.1  添加相關庫文件

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把Renren文件夾添加到工程。

 

6.4.2  配置URL schemes

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,格式為“rm”+你的應用bundle id,例如“rmcom.umeng.SocialSDK”

 

6.4.3  添加SSO授權開關

在你的Appdelegate入口方法,添加下面的代碼

//打開人人網SSO開關 [UMSocialRenrenHandler openSSO]; 

 

6.4.4  添加系統回調

在APPdelegate中實現下面的回調方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

7.  第三方登錄

 

 

7.1  第三方登錄概述

第三方登錄主要用於簡化用戶登錄流程,通過用戶擁有的微博、QQ、微信等第三方賬號進行登錄並且構建APP自己的登錄賬號體系。

實現第三方登錄主要通過下面兩步:

  • 在第三方平台完成授權
  • 獲取第三方平台的accesstoken信息及用戶資料

 

7.1.1  第三方登錄支持的平台

目前友盟社會化組件支持的第三方登錄平台為:新浪微博、微信、QQ、QQ空間、騰訊微博、人人網、豆瓣、Facebook、Twitter

 

7.2  新浪微博登錄

在新浪微博登錄按鈕中實現下面的方法

UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];

        snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){ // 獲取微博用戶名、uid、token等 if (response.responseCode == UMSResponseCodeSuccess) { UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToSina]; NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL); }}); 

在授權完成后調用獲取用戶信息的方法

//獲取accestoken以及新浪用戶信息,得到的數據在回調Block對象形參respone的data屬性 [[UMSocialDataService defaultDataService] requestSnsInformation:UMShareToSina completion:^(UMSocialResponseEntity *response){ NSLog(@"SnsInformation is %@",response.data); }]; 

獲取好友列表調用下面的方法,由於新浪官方限制,獲取好友列表只能獲取到30%好友

[[UMSocialDataService defaultDataService] requestSnsFriends:UMShareToSina  completion:^(UMSocialResponseEntity *response){
        NSLog(@"SnsFriends is %@",response.data); }]; 

刪除授權調用下面的方法

[[UMSocialDataService defaultDataService] requestUnOauthWithType:UMShareToSina  completion:^(UMSocialResponseEntity *response){
        NSLog(@"response is %@",response); }]; 

 

7.3  QQ及Qzone登錄

QQ登錄只支持SSO登錄方式,必須具備手機QQ客戶端,Qzone默認調用SSO登錄

添加配置文件參考文檔:添加QQ及Qzone,添加相關庫文件,配置URL schemes及添加系統回調

在AppDelegate應用入口方法添加下面的方法

    //設置分享到QQ/Qzone的應用Id,和分享url 鏈接 #import "UMSocialQQHandler.h" [UMSocialQQHandler setQQWithAppId:@"100424468" appKey:@"c7394704798a158208a74ab60104f0ba" url:@"http://www.umeng.com/social"]; 

在QQ登錄按鈕中實現下面的方法

UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToQQ];

        snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){ // 獲取微博用戶名、uid、token等 if (response.responseCode == UMSResponseCodeSuccess) { UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToQQ]; NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL); }}); 

在Qzone登錄按鈕中實現下面的方法

 UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToQzone];

        snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){ // 獲取微博用戶名、uid、token等 if (response.responseCode == UMSResponseCodeSuccess) { UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToQzone]; NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL); }}); 

在授權完成后調用獲取用戶信息的方法

//獲取accestoken以及QQ用戶信息,得到的數據在回調Block對象形參respone的data屬性 [[UMSocialDataService defaultDataService] requestSnsInformation:UMShareToQQ completion:^(UMSocialResponseEntity *response){ NSLog(@"SnsInformation is %@",response.data); }]; 

Qzone將UMShareToQQ替換為UMShareToQzone即可,獲取QQ用戶信息時,獲取的頭像為Qzone頭像

 

7.4  微信登錄

添加配置文件參考文檔:添加微信及朋友圈,添加相關庫文件,配置URL schemes及添加系統回調

在你的程序APPdelegate入口方法添加下面的代碼

  #import "UMSocialWechatHandler.h" //設置微信AppId、appSecret,分享url [UMSocialWechatHandler setWXAppId:@"wxd930ea5d5a258f4f" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@"http://www.umeng.com/social"]; 

在微信登錄按鈕中實現下面的方法

  UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToWechatSession];

        snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary]valueForKey:UMShareToWechatSession]; NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL); } }); 

在授權完成后調用獲取用戶信息的方法

//得到的數據在回調Block對象形參respone的data屬性 [[UMSocialDataService defaultDataService] requestSnsInformation:UMShareToWechatsession completion:^(UMSocialResponseEntity *response){ NSLog(@"SnsInformation is %@",response.data); }]; 

8.  添加其他國內分享平台

 

 

8.1  國內分享平台簡介

友盟社會化組件支持的國內分享平台包括:新浪、微信及朋友圈、QQ及Qzone、騰訊微博、人人網、豆瓣、短信、郵件、易信和來往

 

8.2  添加騰訊微博

 

8.2.1  使用默認分享界面

使用友盟默認提供的分享面板,調用下面的代碼 

[UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,http://umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToTencent] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

 

8.2.2  使用自定義分享界面

自定義分享樣式,可以在自己定義的分享按鈕中實現下面的方法

[[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToTencent] content:@"分享內嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *shareResponse){ if (shareResponse.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

 

8.3  添加人人網

8.3.1  使用默認分享界面

使用友盟默認提供的分享面板,調用下面的代碼 

[UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,http://umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToRenren] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

 

8.3.2  使用自定義分享界面

自定義分享樣式,可以在自己定義的分享按鈕中實現下面的方法

[[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToRenren] content:@"分享內嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *shareResponse){ if (shareResponse.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

 

8.4  添加豆瓣、短信、郵件

在默認分享界面下,直接在分享平台的數組中傳遞平台參數名即可

[UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,http://umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToDouban,UMShareToEmail,UMShareToSms] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

 

8.5  添加易信

 

8.5.1  添加相關文件

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把YiXin文件夾添加到工程

 

8.5.2  配置URL schemes 及系統回調

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,格式為易信Appkey,例如“yx35664bdff4db42c2b7be1e29390c1a06”

在APPdelegate中實現下面的回調方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

 

8.5.3  添加易信及朋友圈到分享列表

在APPdelegate中添加下面的方法

//設置易信Appkey和分享url地址,注意需要引用頭文件 #import UMSocialYixinHandler.h [UMSocialYixinHandler setYixinAppKey:@"yx35664bdff4db42c2b7be1e29390c1a06" url:@"http://www.umeng.com/social"]; 

 

8.5.4  設置分享內容

使用默認分享界面調用下面的方法,其中UMShareToYXSession代表易信好友,UMShareToYXTimeline代表易信朋友圈

[UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,www.umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToYXSession,UMShareToYXTimeline] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

使用自定義分享界面,則在對應的按鈕中實現下面的方法

[[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToYXSession] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

上述代碼為分享到易信好友,易信朋友圈將平台參數UMShareToYXSession替換為UMShareToYXTimeline即可 

 

8.6  添加來往

 

8.6.1  添加相關文件

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把LaiWang文件夾添加到工程

 

8.6.2  配置URL schemes 及系統回調

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,Identifier填“Laiwang”,URL Schemes填來往AppId.注意使用來往SDK后,Xcode工程other linker flags需要添加-ObjC參數

在APPdelegate中實現下面的回調方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

 

8.6.3  添加來往及來往動態到分享列表

在APPdelegate中添加下面的方法

//設置來往AppId,appscret,顯示來源名稱和url地址,注意需要引用頭文件 #import "UMSocialLaiwangHandler.h" [UMSocialLaiwangHandler setLaiwangAppId:@"8112117817424282305" appSecret:@"9996ed5039e641658de7b83345fee6c9" appDescription:@"友盟社會化組件" urlStirng:@"http://www.umeng.com/social"]; 

 

8.6.4  設置分享內容

使用默認分享界面調用下面的方法,其中UMShareToLWSession代表來往好友,UMShareToLWTimeline代表來往動態

[UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,www.umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToLWSession,UMShareToLWTimeline] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

使用自定義分享界面,則在對應的按鈕中實現下面的方法

[[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToLWSession] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

上述代碼為分享到來往好友,來往動態將平台參數UMShareToLWSession替換為UMShareToLWTimeline即可 

9.  添加國外分享平台

 

 

9.1  國外分享平台簡介

友盟社會化組件支持多個國外分享平台,包括Facebook、Twitter、Instagram、Line、Whatsapp、Tumblr,其中Facebook和Twitter分享支持應用內網頁分享,其余平台僅支持跳轉客戶端分享。

 

9.2  添加Facebook

 

9.2.1  使用系統自帶Facebook分享

使用系統自帶Facebook需要先在手機上設置Facebook賬號

使用默認分享界面調用下面的代碼

    [UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,www.umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToFacebook] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

使用自定義分享界面在對應的Facebook分享按鈕中實現下面的方法

    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToFacebook] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

 

9.2.2  使用應用內網頁分享

9.2.2.1  注冊應用

在Facebook開放平台(點擊鏈接) 注冊你的facebook應用,注意在你的應用Native iOS App填寫Bundle ID

9.2.2.2  添加相關庫文件

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把Facebook文件夾添加到工程

9.2.2.3  添加URL schemes 及系統回調

在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,設置Xcode的url scheme格式為“fb”+facebook AppID,例如“fb1440390216179601”

在APPdelegate中實現下面的回調

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [UMSocialSnsService handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; } 

9.2.2.4  添加Facebook

在AppDelegate的入口方法增加下面代碼

    //設置Facebook,AppID和分享url,需要#import "UMSocialFacebookHandler.h" [UMSocialFacebookHandler setFacebookAppID:@"1440390216179601" shareFacebookWithURL:@"http://www.umeng.com/social"]; 

設置分享內容方法和調用系統Facebook分享相同

 

9.3  添加Twitter

 

9.3.1  使用系統自帶Twitter分享

使用系統自帶Twitter分享需要先在手機中設置Twitter賬戶

使用默認分享界面分享調用下面的代碼

    [UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,www.umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToTwitter] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

使用自定義分享界面,在對於的Twitter分享按鈕中實現下面的方法

    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToTwitter] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

 

9.3.2  使用應用內網頁分享

9.3.2.1  添加相關庫文件

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把Twitter文件夾添加到工程,並添加系統Framework:Accounts.frameworkSocial.framework

9.3.2.2  添加Twitter

在AppDelegate的入口方法設置:

#import "UMSocialTwitterHandler.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [UMSocialTwitterHandler openTwitter]; } 

設置分享內容方法與使用系統自帶Twitter分享相同

 

9.4  添加Instagram

 

9.4.1  添加相關庫文件

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把Instagram文件夾添加到工程

 

9.4.2  添加Instagram開關

在AppDelegate的入口方法設置:

#import "UMSocialInstagramHandler.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [UMSocialInstagramHandler openInstagramWithScale:NO paddingColor:[UIColor blackColor]]; } 

 

9.4.3  設置分享內容

使用默認分享界面調用下面的方法

    [UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,www.umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToInstagram] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

使用自定義界面,在對應的Instagram分享按鈕中實現下面的方法

    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToInstagram] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

 

9.5  添加Line

 

9.5.1  添加相關庫文件

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把Line文件夾添加到工程

 

9.5.2  添加Line開關

在AppDelegate的入口方法設置:

#import "UMSocialLineHandler.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //分享到line,只能分享純文本消息或者純圖片消息 [UMSocialLineHandler openLineShare:UMSocialLineMessageTypeImage]; } 

 

9.5.3  設置分享內容

使用默認分享界面,添加下面的代碼

    [UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,www.umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToLine] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

使用自定義分享界面,在對應的Line分享按鈕中實現下面的方法

    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToLine] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

 

9.6  添加Whatsapp

 

9.6.1  添加相關庫文件

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把Whatsapp文件夾添加到工程

 

9.6.2  添加Whatsapp開關

在AppDelegate的入口方法設置:

#import "UMSocialLineHandler.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //分享到whatsapp,只能分享純文本消息或者純圖片消息 [UMSocialWhatsappHandler openWhatsapp:UMSocialWhatsappMessageTypeImage]; } 

 

9.6.3  設置分享內容

使用默認分享界面,添加下面的代碼

    [UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,www.umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToWhatsapp] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

使用自定義分享界面,在對應的Whapsapp分享按鈕中實現下面的方法

    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToWhatsapp] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

 

9.7  添加Tumblr

注意:我們采用打開Tumblr客戶端方式分享到Tumblr,由於Tumblr客戶端沒有兼容iOS8,因此在iOS8上分享失敗

 

9.7.1  添加相關庫文件

解壓下載文件夾,在UMSocial_Sdk_Extra_Frameworks目錄下,把Tumblr文件夾添加到工程

 

9.7.2  添加Tumblr開關

在AppDelegate的入口方法設置

#import "UMSocialTumblrHandler.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [UMSocialTumblrHandler openTumblr]; } 

 

9.7.3  設置分享內容

使用默認分享界面,添加下面的代碼

    [UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,www.umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToTumblr] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

使用自定義分享界面,在對應的Tumblr分享按鈕中實現下面的方法

    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToTumblr] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

10.  設置分享內容

 

 

10.1  使用默認分享界面

在分享按鈕中實現下面的方法

[UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,http://umeng.com/social" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:@[UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToDouban,UMShareToEmail] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 
  • shareToSnsNames中傳遞的參數順序即為分享面板中各個分享平台的排列順序
  • 如果需要支持橫屏,則在彈出分享列表頁前調用[UMSocialConfig setSupportedInterfaceOrientations:UIInterfaceOrientationMaskLandscape];

 

10.2  使用自定義分享界面

需要使用自定義分享界面,可以在對應的分享按鈕中調用下面的方法,如新浪微博

[[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToSina] content:@"友盟社會化分享讓您快速實現分享等社會化功能,http://umeng.com/social" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

其他平台替換UMShareToSina如騰訊微博則替換為UMShareToTencent 各平台參數列表為

平台名 參數
新浪微博 UMShareToSina
騰訊微博 UMShareToTencent
QQ UMShareToQQ
QQ空間 UMShareToQzone
微信 UMShareToWechatSession
微信朋友圈 UMShareToWechatTimeline
微信收藏 UMShareToFavorite
郵件 UMShareToEmail
短信 UMShareToSms
豆瓣 UMShareToSms
短信 UMShareToDouban
人人網 UMShareToRenren
Facebook UMShareToFacebook
Twitter UMShareToTwitter
易信 UMShareToYXSession
易信朋友圈 UMShareToYXTimeline
來往 UMShareToLWSession
來往動態 UMShareToLWTimeline
Instagram UMShareToInstagram
Line UMShareToLine
Whatsapp UMShareToWhatsapp
Tumblr UMShareToTumblr

 

10.3  分享多媒體資源

 

10.3.1  分享URL圖片

使用默認分享界面,使用下面的代碼

[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeImage url:@"http://www.baidu.com/img/bdlogo.gif"]; //調用快速分享接口 [UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,http://umeng.com/social" shareImage:nil shareToSnsNames:@[UMShareToSina] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

使用自定義分享界面,在對應平台分享按鈕中實現下面的方法

UMSocialUrlResource *urlResource = [[UMSocialUrlResource alloc] initWithSnsResourceType:UMSocialUrlResourceTypeImage url:
                                        @"http://www.baidu.com/img/bdlogo.gif"]; [[UMSocialDataService defaultDataService] postSNSWithTypes:@[UMShareToSina] content:@"分享內嵌文字" image:nil location:nil urlResource:urlResource presentedController:self completion:^(UMSocialResponseEntity *shareResponse){ if (shareResponse.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; 

分享其他平台替換UMShareToSina為其他平台參數即可

 

10.3.2  分享本地gif圖片

分享本地gif圖片到各個開放平台,需要生成把本地gif圖片生成NSData對象,作為各個分享方法的shareImage參數,例如快速分享接口如下寫法。
分享png、jpg圖片則只需要生成UIImage,傳入到shareImage參數,不能使用這種寫法。

    //分享gif圖片 NSString *path = [[NSBundle mainBundle] pathForResource:@"picName" ofType:@"gif"]; NSData *gifData = [NSData dataWithContentsOfFile:path]; [UMSocialSnsService presentSnsIconSheetView:self appKey:UmengAppkey shareText:shareText shareImage:gifData shareToSnsNames:nil delegate:self]; //分享png、jpg圖片 [UMSocialSnsService presentSnsIconSheetView:self appKey:UmengAppkey shareText:shareText shareImage:[UIImage imageNamed:@"picName"] shareToSnsNames:nil delegate:self]; 

 

10.3.3  分享URL音樂

分享音樂資源只需要將UMSocialUrlResourceType設置為Music類型即可

[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeMusic url:@"http://mr4.douban.com/201401091529/6e0b23f37fa584f2a6e58ac70d03b31e/view/song/small/p759182.mp3"]; //調用快速分享接口 [UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,http://umeng.com/social" shareImage:nil shareToSnsNames:@[UMShareToSina] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

微信設置分享音樂方法

微信分享音樂方法直接調用原生SDK方法

WXMusicObject *musicObject = [WXMusicObject object];
                musicObject.musicUrl = @"要跳轉的連接"; musicObject.musicDataUrl = @"我分享的是mp3,這里是mp3的連接"; [UMSocialData defaultData].extConfig.wxMediaObject = musicObject; [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeOther; 

 

10.3.4  分享URL視頻

分享視頻資源需要將UMSocialUrlResourceType設置為Video類型即可

[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeVideo url:@"http://v.youku.com/v_show/id_XNjQ1NjczNzEy.html?f=21207816&ev=2"]; //調用快速分享接口 [UMSocialSnsService presentSnsIconSheetView:self appKey:你的友盟應用Appkey shareText:@"友盟社會化分享讓您快速實現分享等社會化功能,http://umeng.com/social" shareImage:nil shareToSnsNames:@[UMShareToSina] delegate:self]; //實現回調方法(可選): -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根據`responseCode`得到發送結果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的微博平台名 NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); } } 

 

10.4  分平台設置分享內容

[UMSocialData defaultData].extConfig下設置各個分享平台的分享文字、分享圖片、分享視頻、音樂等。各個平台的對象名,請參看頭文件定義,此設置方法不支持直接發送分享內容的底層分享方法,只支持使用有界面的分享方法,示例代碼如下:

[UMSocialData defaultData].extConfig.sinaData.shareText = @"分享到新浪微博內容"; [UMSocialData defaultData].extConfig.tencentData.shareImage = [UIImage imageNamed:@"icon"]; //分享到騰訊微博圖片 [[UMSocialData defaultData].extConfig.wechatSessionData.urlResource setResourceType:UMSocialUrlResourceTypeImage url:@"http://www.baidu.com/img/bdlogo.gif"]; //設置微信好友分享url圖片 [[UMSocialData defaultData].extConfig.wechatTimelineData.urlResource setResourceType:UMSocialUrlResourceTypeVideo url:@"http://v.youku.com/v_show/id_XNjQ1NjczNzEy.html?f=21207816&ev=2"]; //設置微信朋友圈分享視頻 

 

10.5  添加自定義平台

如果需要修改已有面板中的按鈕,可以參考下面的方法修改平台相應的圖片、文字和點擊事件等,例如下面修改新浪微博的圖片、文字和點擊事件

    UMSocialSnsPlatform *sinaPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];
    sinaPlatform.bigImageName = @"icon"; sinaPlatform.displayName = @"微博"; sinaPlatform.snsClickHandler = ^(UIViewController *presentingController, UMSocialControllerService * socialControllerService, BOOL isPresentInController){ NSLog(@"點擊新浪微博的響應"); }; 

如果需要添加自定義按鈕,如復制鏈接等按鈕,在appdelegate方法內添加下面的代碼:

UMSocialSnsPlatform *snsPlatform = [[UMSocialSnsPlatform alloc] initWithPlatformName:@"CustomPlatform"]; snsPlatform.displayName = @"自定義平台"; snsPlatform.snsClickHandler = ^(UIViewController *presentingController, UMSocialControllerService * socialControllerService, BOOL isPresentInController){ NSLog(@"點擊自定義平台的響應"); }; [UMSocialConfig addSocialSnsPlatform:@[snsPlatform]]; //設置你要在分享面板中出現的平台 [UMSocialConfig setSnsPlatformNames:@[UMShareToSina,@"CustomPlatform"]]; 

11.  常見錯誤

 

 

11.1  錯誤碼列表

5001 錯誤的友盟appkey,或者此appkey沒有綁定任何平台.如果開發者綁定了,依然出現這個問題,讓開發者再試一下,可能是剛綁定馬上就測試的原因,最好等2分鍾。
5002 這個友盟appkey已經被禁止
5003 請求的參數中沒有uid
5004 未知的錯誤,具體的錯誤信息會在log的輸出中
5005 訪問頻率超限,可一會兒再試
5006 請求參數中沒有content字段
5007 請求參數中content字段的內容為空
5008 沒有上傳圖片
5009 此友盟的appkey沒有綁定對應平台的appkey和appsecret
5010 userid無效,這個用戶並沒有進行授權
5013 請求的參數中沒有appkey這個字段
5014 沒有對此用戶進行授權
5016 分享信息重復
5017 分享圖片大小有問題
5024 獲取access token失敗,具體看log輸出
5025 獲取access token失敗,具體看log輸出
5027 授權已經過期
5028 授權已經過期
5015 請求中沒有state參數
5016 發送了重復內容的微博
5017 圖像文件大小不正確
5018 appurl不正確
5019 圖像url不正確
5020 沒有使用Qzone add_share接口的權限
5029 該用戶已經關注過了
5030 沒有使用此api的權限
5031 openid錯誤
5032 用戶不存在或者用戶無法在平台發言
5033 請求參數非法
5034 用戶不在平台的應用測試列表當中
5035 發布內容頻率太高
5036 IMEI參數錯誤
5037 此App尚未授權過
500 給定uid的用戶並不存在
501 綁定賬戶失敗
502 解綁定失敗
503 評論失敗
504 獲取評論失敗
505 用戶被加入黑名單
506 獲取好友失敗
507 獲取授權url失敗
508 解除授權失敗
510 分享失敗
511 獲取bar失敗
512 從平台獲取用戶信息失敗
513 url跳轉失敗
514 從social獲取用戶信息失敗
515 請求的參數錯誤
516 請求喜歡失敗
517 版本號錯誤
-101 沒有Oauth授權
-102 未知錯誤
-103 服務器沒響應
-104 初始化失敗
-105 參數錯誤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM