iOS 友盟分享ios
這個主要是提到如何經過友盟去自定義分享的步驟:c++
1、確定要去友盟官網下載最新的SDK包,而後將SDK導入到你的工程文件夾裏面去;sql
2、註冊友盟帳號,將你的APP添加到你的帳號裏面而後獲取到一個Key;xcode
3、 在AppDelegate內設置友盟AppKey微信
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptionsapp
{post
[UMSocialData setAppKey:@"***這個是你註冊後的APP的Key****"];ui
}url
4、而後在你要顯示分享界面的控制器設置友盟自帶的分享,例如 :點擊一個分享按鈕在分享按鈕裏面添加spa
[UMSocialSnsService presentSnsIconSheetView:self
appKey:@"你APPKey"
shareText:@「你要分享的文字」
shareImage:[UIImage imageNamed:@"icon"]
shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToEmail,UMShareToSms,nil]
delegate:nil];
這個是使用友盟原生的分享,下面給你們介紹一下自定義的
前三步仍是以上三步;
4、首先你得搭建好你想要顯示什麼要UI效果,好比你用UIScrollView或者 UICollectionView 或者你直接是往View裏面添加Button按鈕;
我介紹下我使用UICollectionView作的自定義:
一、首先實現UICollectionView最基本的協議和代理方法;
二、在UICollectionView的點擊事件的方法裏去根據你要添加多少個分享平臺去設置;
5、首先以分享新浪,騰訊微博,人人網,豆瓣網,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等等
那就要看接下來的幾個步驟了
一、微信你要把你所下載的SDK中Wechat文件放在工程中;
二、進入微信開放平臺註冊申請獲得一個WXAppId;
三、在你的程序APPdelegate入口方法添加下面的代碼
#import "UMSocialWechatHandler.h"
//設置微信AppId、appSecret,分享url
[UMSocialWechatHandler setWXAppId:@「你的微信AppId" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@「要分享的URL」];
四、在你的工程設置項,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];
}
五、在你的點擊方法中根據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
一、在Xcode中打開工程配置文件,選擇「summary」一欄。在「summary」中選擇「Linked Frameworks and Libraries」一欄,點擊「+」圖標添加下面八個庫文件,分別是
• Security.framework
• libiconv.dylib
• SystemConfiguration.framework
• CoreGraphics.Framework
• libsqlite3.dylib
• CoreTelephony.framework
• libstdc++.dylib
• libz.dylib
二、在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];
}
四、而後再在點擊事件裏添加
[[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,只不過我的感受友盟的更簡潔更方便一些;