iOS 友盟分享
這個主要是提到如何通過友盟去自定義分享的步驟:
一、肯定要去友盟官網下載最新的SDK包,然后將SDK導入到你的工程文件夾里面去;
二、注冊友盟賬號,將你的APP添加到你的賬號里面然后獲取到一個Key;
三、 在AppDelegate內設置友盟AppKey
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[UMSocialData setAppKey:@"***這個是你注冊后的APP的Key****"];
}
四、然后在你要顯示分享界面的控制器設置友盟自帶的分享,例如 :點擊一個分享按鈕在分享按鈕里面添加
[UMSocialSnsService presentSnsIconSheetView:self
appKey:@"你APPKey"
shareText:@“你要分享的文字”
shareImage:[UIImage imageNamed:@"icon"]
shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToEmail,UMShareToSms,nil]
delegate:nil];
這個是使用友盟原生的分享,下面給大家介紹一下自定義的
前三步還是以上三步;
四、首先你得搭建好你想要顯示什么要UI效果,比如你用UIScrollView或者 UICollectionView 或者你直接是往View里面添加Button按鈕;
我介紹下我使用UICollectionView做的自定義:
1、首先實現UICollectionView最基本的協議和代理方法;
2、在UICollectionView的點擊事件的方法里去根據你要添加多少個分享平台去設置;
五、首先以分享新浪,騰訊微博,人人網,豆瓣網,QQ空間,郵箱,短信為例:
1.在UICollectionView
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
NSMutableArray * shareArray =[NSMutableArray arrayWithObjects:UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToDouban,UMShareToQzone,UMShareToEmail,UMShareToSms,nil];
for (int i = 0; i< shareArray.count; i++) {
if ( indexPath.row == i )
{//新浪,騰訊微博,人人網,豆瓣網,QQ空間,郵箱,短信
[UMSocialAccountManager isOauthAndTokenNotExpired:shareArray[i]];
//進入授權頁面
[UMSocialSnsPlatformManager getSocialPlatformWithName:shareArray[i]].loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
if (response.responseCode == UMSResponseCodeSuccess) {
//獲取微博用戶名、uid、token等
UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:shareArray[i]];
NSLog(@"username is %@, uid is %@, token is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken);
//進入你的分享內容編輯頁面
}
});
}}
}
這樣這幾個分享的功能就實現了
如果還想注冊微信/手機QQ/Facebook等等
那就要看接下來的幾個步驟了
1、微信你要把你所下載的SDK中Wechat文件放在工程中;
2、進入微信開放平台注冊申請得到一個WXAppId;
3、在你的程序APPdelegate入口方法添加下面的代碼
#import "UMSocialWechatHandler.h"
//設置微信AppId、appSecret,分享url
[UMSocialWechatHandler setWXAppId:@“你的微信AppId" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@“要分享的URL”];
4、在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,添加xcode的url scheme為微信應用appId,例如“wxd9a39c7122aa6516”;
- (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];
}
5、在你的點擊方法中根據indexPath.row進行判斷點擊的第幾個按鈕中添加
[[UMSocialDataService defaultDataService] postSNSWithTypes:@[UMShareToWechatSession] content:@"分享內嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
if (response.responseCode == UMSResponseCodeSuccess) {
NSLog(@"分享成功!");
}
}];
到這兒微信的自定義添加就結束了;
下面就介紹下添加手機QQ的,
首先你需要到騰訊開放平台注冊獲取Key,然后在UMSocial_Sdk_Extra_Frameworks目錄下的,添加TencentOpenAPI文件夾到工程 添加下面幾個系統framework
1、在Xcode中打開工程配置文件,選擇“summary”一欄。在“summary”中選擇“Linked Frameworks and Libraries”一欄,點擊“+”圖標添加下面八個庫文件,分別是
• Security.framework
• libiconv.dylib
• SystemConfiguration.framework
• CoreGraphics.Framework
• libsqlite3.dylib
• CoreTelephony.framework
• libstdc++.dylib
• libz.dylib
2、在AppDelegate中
#import "UMSocialQQHandler.h"
[UMSocialQQHandler setQQWithAppId:@"100424468" appKey:@"c7394704798a158208a74ab60104f0ba" url:@“http://www.umeng.com/social"];
這里注意了:在你的工程設置項,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的值,所以務必請檢查確保這個屬性存在,如果沒有請添加上。
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、然后再在點擊事件里添加
[[UMSocialDataService defaultDataService] postSNSWithTypes:@[UMShareToQQ(這里如果要分享到QQ空間只要把UMShareToQQ換成UMShareToQzone的就可以了)] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
if (response.responseCode == UMSResponseCodeSuccess) {
NSLog(@"分享成功!");
}
}];
到這兒QQ的添加已經完成了
下面給大家介紹一個Facebook的添加
1.在Facebook開放平台(點擊鏈接) 注冊你的facebook應用,注意在你的應用Native iOS App填寫Bundle ID
2.把你的SDK中在UMSocial_Sdk_Extra_Frameworks目錄下,把Facebook文件夾添加到工程;
3.在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,設置Xcode的url scheme格式為“fb”+facebook AppID,例如“fb1440390216179601”
4.在APPdelegate里實現
[UMSocialFacebookHandler setFacebookAppID:@"1440390216179601" shareFacebookWithURL:@"http://www.umeng.com/social"];
- (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];
}
/**如果上面的幾個分享已經添加這個那就不需要再次添加了*/
介紹就到這里了,至於其他的一些分享大家可以好好看看友盟的官方文檔很詳細的介紹了如何使用自定義的
這個是鏈接:http://dev.umeng.com/social/ios/detail-share
當然了國內除了友盟之外還有一個shareSDK,只不過個人感覺友盟的更簡潔更方便一些;