社會化分享
廣告 - 免費推廣.
原生框架
了解內(nèi)容:(在中國不適用,只支持新浪微博和騰訊微博)
蘋果原生的只有新浪微博和騰訊微博.其他的不行.不實用.
框架:Social.
控制器:SLComposeViewController
if ([SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo] == NO) {
NSLog(@"不支持微博分享服務");
}
// 實例化
SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
// 配置
[composeVc setInitialText:@"測試用的"];
[composeVc addImage:[UIImage imageNamed:@"nihao"]];
// 結果回調(diào)參數(shù)
// SLComposeViewControllerCompletionHandler
composeVc.completionHandler = ^(SLComposeViewControllerResult result){
// SLComposeViewControllerResultCancelled,
// SLComposeViewControllerResultDone
if (result == SLComposeViewControllerResultDone) {
NSLog(@"分享成功");
} else {
NSLog(@"分享失敗");
}
};
// 3. 彈出來
[self presentViewController:composeVc animated:YES completion:nil];
第三方框架
- shareSDK和友盟
- 注意原理:集成所有share,但是這個分享的前提是你必須去相應網(wǎng)站配置信息.演示微信和微博的分享,只是把其他app的分享集成到一起而已,本身不能做分享的. 因此需要你分別取shareSDK上和各個需要分享到應用開放平臺上注冊appKey和appSecret.
根據(jù)shareSDK官網(wǎng)上的代碼提示.
- 導入ShareSDK的框架
- 在下載的時候需要指定所分享的平臺.
- 導入每個SDK所需要使用的系統(tǒng)框架(根據(jù)你需要的分享平臺的系統(tǒng)框架決定)
- 初始化ShareSDK注冊并驗證.
- 代碼部分
4.1. 導入相應的頭文件.(ShareSDK的,你需要分享的app的)
導入時注意點:
1. .framework用<框架名>導入,.a用"框架名"導入
2. 注意系統(tǒng)自帶的分享不需要連接,只需要連接第三方的分享(因為第三方有SDK需要連接)
4.2. 注冊,初始化ShareSDK應用根據(jù)官網(wǎng)上的示例代碼,配置參數(shù). // appKey
// ShareSDK應用標識,可在http://mob.com中登錄并創(chuàng)建App后獲得。
// activePlatforms
// 使用的分享平臺集合,如:@[@(SSDKPlatformTypeSinaWeibo), @(SSDKPlatformTypeTencentWeibo)];
// configurationHandler
// 配置回調(diào)處理,在此方法中根據(jù)設置的platformType來填充應用配置信息
// connectHandler
// 導入回調(diào)處理,當某個平臺的功能需要依賴原平臺提供的SDK支持時,需要在此方法中對原平臺SDK進行導入操作。具體的導入方式可以參考ShareSDKConnector.framework中所提供的方法。
/// 注冊
NSArray *platforms = @[@(SSDKPlatformTypeSinaWeibo),
@(SSDKPlatformTypeWechat),
@(SSDKPlatformTypeMail),
@(SSDKPlatformTypeSMS)];
//需要連接的分享平臺
SSDKImportHandler importHandler = ^(SSDKPlatformType platformType)
{
switch (platformType)
{
case SSDKPlatformTypeWechat:
[ShareSDKConnector connectWeChat:[WXApi class]];
break;
case SSDKPlatformTypeSinaWeibo:
[ShareSDKConnector connectWeibo:[WeiboSDK class]];
break;
default:
break;
}
};
// 需要連接平臺的info參數(shù)
[ShareSDK registerApp:shareSDKAppKey activePlatforms:platforms onImport:importHandler onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {
switch (platformType)
{
case SSDKPlatformTypeSinaWeibo:
//設置新浪微博應用信息,其中authType設置為使用SSO+Web形式授權,注意授權回調(diào)頁不能寫錯,得寫開放者平臺上填寫的.不然會得不到你的授權.
[appInfo SSDKSetupSinaWeiboByAppKey:shareWeiboAppKey
appSecret:shareWeiboAppSecret
redirectUri:SinaWeiboRedirectUri
authType:SSDKAuthTypeBoth];
break;
case SSDKPlatformTypeWechat:
[appInfo SSDKSetupWeChatByAppId:shareWechatAppKey
appSecret:shareWechatAppSecret];
break;
default:
break;
}
}];
```
** 注意授權回調(diào)頁不能寫錯,得寫開放者平臺上填寫的.不然會得不到你的授權. **
- 彈出分享界面
5.1 彈出分享界面方法,根據(jù)方法參數(shù)配置相關參數(shù).


Other Linker:如果libWeiboSDK.a里面的.m(.a文件中的.m已經(jīng)被編譯成其他的東西了)文件的代碼.
//1、創(chuàng)建分享參數(shù)
NSString *text = @"測試用的";
NSArray* imageArray = @[[UIImage imageNamed:@"IMG_2213.jpg"],@"http://upload.chinaz.com/2015/0703/1435902911410.jpg"];
//分享的網(wǎng)頁路徑
NSURL *url = [NSURL URLWithString:@"http://mob.com"];
NSString *title = @"分享的標題";
// (注意:圖片必須要在Xcode左邊目錄里面,名稱必須要傳正確,如果要分享網(wǎng)絡圖片,可以這樣傳iamge參數(shù) images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])
if (imageArray) {
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:text
images:imageArray
url:url
title:title
type:SSDKContentTypeAuto];
// show分享
[ShareSDK showShareActionSheet:nil items:nil shareParams:shareParams onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
// SSDKResponseState表示結果狀態(tài)
if (state == SSDKResponseStateSuccess) {
NSLog(@"分享成功: %@, %@", userData, contentEntity);
}
if (error) {
NSLog(@"錯誤信息: %@", error);
}
}];
}
微信分享,需要跳轉進微信頁面.進行額外的配置.
- SSO登陸認證,跳轉APP(免登陸進行授權)
6.1. wechat平臺需要添加sso之后才能使用,因為微信沒有網(wǎng)頁,必須走sso
6.2. 配置info中的url scheme!
6.3. iOS9.0之后,要配置https
6.4. 白名單,根據(jù)官網(wǎng)配置.

