本篇文章主要指導(dǎo)新手快速接入share sdk。教你使用復(fù)制粘貼神功實(shí)現(xiàn)app接入分享功能
一录语、接入準(zhǔn)備:通過CocoaPod接入share sdk
1、首先 cd 至項(xiàng)目的根目錄執(zhí)行
? pod setup;
2、按需在 Podfile 文件中添加命令:?
pod 'mob_sharesdk' ? ? ? ? // 主模塊(必須)?
需要用到ShareSDK提供的分享菜單欄和分享編輯頁面時(shí)導(dǎo)入
pod 'mob_sharesdk/ShareSDKUI'? ? ? ? ? // UI模塊(非必須)
接入QQ弯囊、微信模塊
pod 'mob_sharesdk/ShareSDKPlatforms/QQ'
pod 'mob_sharesdk/ShareSDKPlatforms/WeChat' ? //(微信sdk不帶支付的命令)
# pod 'mob_sharesdk/ShareSDKPlatforms/WeChatFull' //(微信sdk帶支付的命令,和上面不帶支付的不能共存胶果,只能選擇一個(gè))
ShareSDKPlatforms模塊其他平臺(tái),按開發(fā)者文檔添加 文檔鏈接在文章末尾
3斤斧、添加完相應(yīng)的平臺(tái)后早抠,執(zhí)行pod install 等待完成。
二撬讽、工程配置準(zhǔn)備工作
1蕊连、第一步:設(shè)置ShareSDK的Appkey并初始化對(duì)應(yīng)的第三方社交平臺(tái)
在項(xiàng)目工程的Info.plist 中如圖增加 LSApplicationQueriesSchemes 字段類型為 Array ,并依次添加 wechat游昼、weixin 甘苍、mqq 三個(gè)item,添加MOBAppkey 和 MOBAppSecret 兩個(gè)字段對(duì)應(yīng):287ec523c5b2d烘豌、bce960bde90441c287b288499dcfba62
2载庭、找到URL Type添加以下Schemes:wx617c77c82218ea2c、tencent100371282
三廊佩、工程代碼模塊
第一步:打開*AppDelegate.m(*代表你的工程名字)導(dǎo)入頭文件
1囚聚、導(dǎo)入 #import <ShareSDK/ShareSDK.h>
2、在- (BOOL)application: didFinishLaunchingWithOptions:方法中調(diào)用registerApp方法來初始化SDK并且初始化第三方平臺(tái)
[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {
? ? ? ? [platformsRegistersetupQQWithAppId:@"100371282" appkey:@"aed9b0303e3ed1e27bae87c33761161d"];
? ? ? ? //微信
? ? ? ? [platformsRegistersetupWeChatWithAppId:@"wx617c77c82218ea2c" appSecret:@"c7253e5289986cf4c4c74d1ccc185fb1"];
? ? }];
第二步标锄、在需要分享的控制器中導(dǎo)入的頭文件
1顽铸、#import <ShareSDK/ShareSDK.h>
2、#import <ShareSDKUI/ShareSDK+SSUI.h>? (非必要料皇,自定義UI的可以不需要該頭文件谓松,在pod過程中即可不添加)
3、在觸發(fā)分享事件位置粘貼以下代碼
使用自定義UI時(shí):
第一步:構(gòu)建需要分享的內(nèi)容
NSArray* imageArray = @[[UIImage imageNamed:@"shareImg.png"]];
//? ? (注意:圖片必須要在Xcode左邊目錄里面践剂,名稱必須要傳正確鬼譬,如果要分享網(wǎng)絡(luò)圖片,可以這樣傳iamge參數(shù) images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])
? NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
? ? [shareParamsSSDKSetupShareParamsByText:@"勞務(wù)實(shí)名系統(tǒng)舷手,您身邊的勞務(wù)專家拧簸!"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? images:imageArray//傳入要分享的圖片
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? url:[NSURLURLWithString:@"http://www.baidu.com"]
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? title:@"你好啊,阿尼哈撒喲男窟,庫尼奇瓦盆赤,薩瓦迪卡贾富,迪麗熱巴"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? type:SSDKContentTypeAuto];
? ? SSDKPlatformTypeplatformType ;
? ? switch(btn.tag) {
? ? ? ? case 0:
? ? ? ? ? ? platformType =SSDKPlatformSubTypeWechatSession;
? ? ? ? ? ? break;
? ? ? ? case 1:
? ? ? ? ? ? platformType =SSDKPlatformSubTypeQQFriend;
? ? ? ? ? ? break;
? ? ? ? case 2:
? ? ? ? ? ? platformType =SSDKPlatformSubTypeWechatTimeline;
? ? ? ? ? ? break;
? ? ? ? default:
? ? ? ? ? ? platformType =SSDKPlatformSubTypeWechatSession;
? ? ? ? ? ? break;
? ? }
? ? 第二步、進(jìn)行分享
? ? [ShareSDKshare:platformType//傳入分享的平臺(tái)類型
? ? ? ? parameters:shareParams
? ? onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
? ? ? ? switch(state) {
? ? ? ? ? ? case SSDKResponseStateSuccess:
? ? ? ? ? ? {
? ? ? ? ? ? ? ? UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? message:nil
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? delegate:nil
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cancelButtonTitle:@"確定"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? otherButtonTitles:nil];
? ? ? ? ? ? ? ? [alertViewshow];
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? case SSDKResponseStateFail:
? ? ? ? ? ? {
? ? ? ? ? ? ? ? UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失敗"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? message:[NSStringstringWithFormat:@"%@",error]
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? delegate:nil
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cancelButtonTitle:@"OK"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? otherButtonTitles:nil,nil];
? ? ? ? ? ? ? ? [alertshow];
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? break;
? ? ? ? }
? ? }];
? ? ? ? ?個(gè)人自定義的UI效果
使用官方UI時(shí):(注意需要導(dǎo)入 #import <ShareSDKUI/ShareSDK+SSUI.h>頭文件)
第一步牺六、同上
第二步颤枪、進(jìn)行分享
? ? ? ? [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) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? // 根據(jù)state對(duì)分享結(jié)果做不同的業(yè)務(wù)邏輯
? ? ? ? ? ? ? ? ? ? ? }];
Mob官方提醒大家請(qǐng)注意:4.1.2版本開始因?yàn)閁I重構(gòu)了下,所以這個(gè)彈出分享菜單的接口有點(diǎn)改變春缕,如果集成的是4.1.2以及以后版本盗胀,如下調(diào)用:
[ShareSDK showShareActionSheet:nil customItems:nil shareParams:shareParams sheetConfiguration:nil onStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
// 根據(jù)state對(duì)分享結(jié)果做不同的業(yè)務(wù)邏輯
}];
后期處理:
測(cè)試成功之后將自己的APP對(duì)應(yīng)申請(qǐng)的微信、qq锄贼、Mob賬號(hào)所獲得的key票灰、Secret、scheme做出相應(yīng)替換宅荤!