Mob-分享模塊-快速集成文檔描述網(wǎng)址, 非常齊全, 推薦參考
http://wiki.mob.com/ios%E7%AE%80%E6%B4%81%E7%89%88%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90/
自我整理:
第一步: 下載SDK
完成上面的步驟, 在彈出的頁(yè)面中:
- 選擇支持分享的平臺(tái)
- 設(shè)置分享視圖, 評(píng)論和贊
- 包括版本的兼容設(shè)置
第二步:
將下載的"ShareSDK"拖到工程中, 標(biāo)記(此時(shí)的第三方文件包含兩個(gè)文件夾)
工程結(jié)構(gòu):
第三步: 添加依賴庫(kù)
1.必須添加的依賴庫(kù)如下(Xcode 7 下 .dylib庫(kù)后綴名更改為.tbd):
libicucore.dylib
libz.dylib
libstdc++.dylib
JavaScriptCore.framework
2.以下依賴庫(kù)根據(jù)社交平臺(tái)添加:(一下依賴庫(kù), 相同時(shí)只需要導(dǎo)入一次)
新浪微博SDK依賴庫(kù)
ImageIO.framework
libsqlite3.dylib
QQ好友和QQ空間SDK依賴庫(kù)
libsqlite3.dylib
微信SDK依賴庫(kù)
libsqlite3.dylib
短信和郵件需要依賴庫(kù)
MessageUI.framework
第四步: 如果上面添加了新浪微博的SDK需要配置一下:
新浪微博SDK需要在項(xiàng)目Build Settings中的Other Linker Flags添加-ObjC
第五步: 在APPDelegate.m文件中導(dǎo)入頭文件
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
//騰訊開放平臺(tái)(對(duì)應(yīng)QQ和QQ空間)SDK頭文件
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>
//微信SDK頭文件
#import "WXApi.h"
//新浪微博SDK頭文件
#import "WeiboSDK.h"
//新浪微博SDK需要在項(xiàng)目Build Settings中的Other Linker Flags添加"-ObjC"
//人人SDK頭文件
#import <RennSDK/RennSDK.h>```
###第六步: APPDelegate.m文件
在- (BOOL)application: didFinishLaunchingWithOptions:方法中調(diào)用registerApp方法來(lái)初始化SDK并且初始化第三方平臺(tái)
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
{
/設(shè)置ShareSDK的appKey亩进,如果尚未在ShareSDK官網(wǎng)注冊(cè)過App涂佃,請(qǐng)移步到http://mob.com/login 登錄后臺(tái)進(jìn)行應(yīng)用注冊(cè)
在將生成的AppKey傳入到此方法中堂湖。
方法中的第二個(gè)第三個(gè)參數(shù)為需要連接社交平臺(tái)SDK時(shí)觸發(fā),
在此事件中寫入連接代碼撕氧。第四個(gè)參數(shù)則為配置本地社交平臺(tái)時(shí)觸發(fā),根據(jù)返回的平臺(tái)類型來(lái)配置平臺(tái)信息喇完。
-
如果您使用的時(shí)服務(wù)端托管平臺(tái)信息時(shí)伦泥,第二、四項(xiàng)參數(shù)可以傳入nil,第三項(xiàng)參數(shù)則根據(jù)服務(wù)端托管平臺(tái)來(lái)決定要連接的社交SDK不脯。
*/
[ShareSDK registerApp:@"iosv1101"activePlatforms:@[
@(SSDKPlatformTypeSinaWeibo),
@(SSDKPlatformTypeMail),
@(SSDKPlatformTypeSMS),
@(SSDKPlatformTypeCopy),
@(SSDKPlatformTypeWechat),
@(SSDKPlatformTypeQQ),
@(SSDKPlatformTypeRenren),
@(SSDKPlatformTypeGooglePlus)]
onImport:^(SSDKPlatformType platformType)
{
switch (platformType)
{
case SSDKPlatformTypeWechat:
[ShareSDKConnector connectWeChat:[WXApi class]];
break;
case SSDKPlatformTypeQQ:
[ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];
break;
case SSDKPlatformTypeSinaWeibo:
[ShareSDKConnector connectWeibo:[WeiboSDK class]];
break;
case SSDKPlatformTypeRenren:
[ShareSDKConnector connectRenren:[RennClient class]];
break;
default:
break;
}
}
onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)
{switch (platformType) { case SSDKPlatformTypeSinaWeibo: //設(shè)置新浪微博應(yīng)用信息,其中authType設(shè)置為使用SSO+Web形式授權(quán) [appInfo SSDKSetupSinaWeiboByAppKey:@"568898243" appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3" redirectUri:@"http://www.sharesdk.cn" authType:SSDKAuthTypeBoth]; break; case SSDKPlatformTypeWechat: [appInfo SSDKSetupWeChatByAppId:@"wx4868b35061f87885" appSecret:@"64020361b8ec4c99936c0e3999a9f249"]; break; case SSDKPlatformTypeQQ: [appInfo SSDKSetupQQByAppId:@"100371282" appKey:@"aed9b0303e3ed1e27bae87c33761161d" authType:SSDKAuthTypeBoth]; break; case SSDKPlatformTypeRenren: [appInfo SSDKSetupRenRenByAppId:@"226427" appKey:@"fc5b8aed373c4c27a05b712acba0f8c3" secretKey:@"f29df781abdd4f49beca5a2194676ca4" authType:SSDKAuthTypeBoth]; break; case SSDKPlatformTypeGooglePlus: [appInfo SSDKSetupGooglePlusByClientID:@"232554794995.apps.googleusercontent.com" clientSecret:@"PEdFgtrMw97aCvf0joQj7EMk" redirectUri:@"http://localhost"]; break; default: break; }
}];
return YES;
}
(注意:每一個(gè)case對(duì)應(yīng)一個(gè)break不要忘記填寫府怯,不然很可能有不必要的錯(cuò)誤,新浪微博的外部庫(kù)如果不要客戶端分享或者不需要加關(guān)注微博的功能可以不添加防楷,否則要添加牺丙,QQ,微信复局,google+這些外部庫(kù)文件必須要加)```
第七步: 在需要分析的頁(yè)面導(dǎo)入頭文件
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKUI/ShareSDK+SSUI.h>```
###第八步: 在觸發(fā)分析事件的方法中實(shí)現(xiàn)
//1冲簿、創(chuàng)建分享參數(shù)
NSArray* imageArray = @[[UIImage imageNamed:@"shareImg.png"]];
(注意:圖片必須要在Xcode左邊目錄里面,名稱必須要傳正確肖揣,如果要分享網(wǎng)絡(luò)圖片民假,可以這樣傳iamge參數(shù) images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])
if (imageArray) {
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:@"分享內(nèi)容"
images:imageArray
url:[NSURL URLWithString:@"http://mob.com"]
title:@"分享標(biāo)題"
type:SSDKContentTypeAuto];
//2、分享(可以彈出我們的分享菜單和編輯界面)
[ShareSDK showShareActionSheet:nil //要顯示菜單的視圖, iPad版中此參數(shù)作為彈出菜單的參照視圖龙优,只有傳這個(gè)才可以彈出我們的分享菜單羊异,可以傳分享的按鈕對(duì)象或者自己創(chuàng)建小的view 對(duì)象,iPhone可以傳nil不會(huì)影響
items:nil
shareParams:shareParams
onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
switch (state) {
case SSDKResponseStateSuccess:
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"
message:nil
delegate:nil
cancelButtonTitle:@"確定"
otherButtonTitles:nil];
[alertView show];
break;
}
case SSDKResponseStateFail:
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失敗"
message:[NSString stringWithFormat:@"%@",error]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil, nil];
[alert show];
break;
}
default:
break;
}
}
];}```
上面實(shí)現(xiàn)分享的步驟實(shí)現(xiàn)完成, 但是在分享過程中會(huì)發(fā)現(xiàn), 他會(huì)提示登錄響應(yīng)的應(yīng)用, 用戶體驗(yàn)不好, Mob上建議我們參考SSO(免登陸)和更多社交平臺(tái)的設(shè)置
1.可選:支持微信所需的相關(guān)配置及代碼 在微信開放平臺(tái)(http://open.weixin.qq.com/ )注冊(cè)應(yīng)用并取得應(yīng)用的AppID彤断,然后打開下圖位置野舶,在URL Types中添加微信AppID
打開AppDelegate.m(代表你的工程名字)文件,導(dǎo)入微信SDK的頭文件并增加微信的外部庫(kù)接口
#import <ShareSDKConnector/ShareSDKConnector.h>
//微信SDK頭文件
#import "WXApi.h"
//初始化的import參數(shù)注意要鏈接原生微信SDK宰衙。
case SSDKPlatformTypeWechat:
[ShareSDKConnector connectWeChat:[WXApi class]];
break;```
其他平臺(tái)請(qǐng)參考Mob網(wǎng)