本篇文章主要指导新手快速接入share sdk。教你使用复制粘贴神功实现app接入分享功能
一、接入准备:通过CocoaPod接入share sdk
1、首先 cd 至项目的根目录执行
pod setup;
2、按需在 Podfile 文件中添加命令:
pod 'mob_sharesdk' // 主模块(必须)
需要用到ShareSDK提供的分享菜单栏和分享编辑页面时导入
pod 'mob_sharesdk/ShareSDKUI' // UI模块(非必须)
接入QQ、微信模块
pod 'mob_sharesdk/ShareSDKPlatforms/QQ'
pod 'mob_sharesdk/ShareSDKPlatforms/WeChat' //(微信sdk不带支付的命令)
# pod 'mob_sharesdk/ShareSDKPlatforms/WeChatFull' //(微信sdk带支付的命令,和上面不带支付的不能共存,只能选择一个)
ShareSDKPlatforms模块其他平台,按开发者文档添加 文档链接在文章末尾
3、添加完相应的平台后,执行pod install 等待完成。
二、工程配置准备工作
1、第一步:设置ShareSDK的Appkey并初始化对应的第三方社交平台
在项目工程的Info.plist 中如图增加 LSApplicationQueriesSchemes 字段类型为 Array ,并依次添加 wechat、weixin 、mqq 三个item,添加MOBAppkey 和 MOBAppSecret 两个字段对应:287ec523c5b2d、bce960bde90441c287b288499dcfba62
2、找到URL Type添加以下Schemes:wx617c77c82218ea2c、tencent100371282
三、工程代码模块
第一步:打开*AppDelegate.m(*代表你的工程名字)导入头文件
1、导入 #import <ShareSDK/ShareSDK.h>
2、在- (BOOL)application: didFinishLaunchingWithOptions:方法中调用registerApp方法来初始化SDK并且初始化第三方平台
[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {
[platformsRegistersetupQQWithAppId:@"100371282" appkey:@"aed9b0303e3ed1e27bae87c33761161d"];
//微信
[platformsRegistersetupWeChatWithAppId:@"wx617c77c82218ea2c" appSecret:@"c7253e5289986cf4c4c74d1ccc185fb1"];
}];
第二步、在需要分享的控制器中导入的头文件
1、#import <ShareSDK/ShareSDK.h>
2、#import <ShareSDKUI/ShareSDK+SSUI.h> (非必要,自定义UI的可以不需要该头文件,在pod过程中即可不添加)
3、在触发分享事件位置粘贴以下代码
使用自定义UI时:
第一步:构建需要分享的内容
NSArray* imageArray = @[[UIImage imageNamed:@"shareImg.png"]];
// (注意:图片必须要在Xcode左边目录里面,名称必须要传正确,如果要分享网络图片,可以这样传iamge参数 images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParamsSSDKSetupShareParamsByText:@"劳务实名系统,您身边的劳务专家!"
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;
}
第二步、进行分享
[ShareSDKshare:platformType//传入分享的平台类型
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;
}
}];
个人自定义的UI效果
使用官方UI时:(注意需要导入 #import <ShareSDKUI/ShareSDK+SSUI.h>头文件)
第一步、同上
第二步、进行分享
[ShareSDK showShareActionSheet:nil //要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响
items:nil
shareParams:shareParams
onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
// 根据state对分享结果做不同的业务逻辑
}];
Mob官方提醒大家请注意:4.1.2版本开始因为UI重构了下,所以这个弹出分享菜单的接口有点改变,如果集成的是4.1.2以及以后版本,如下调用:
[ShareSDK showShareActionSheet:nil customItems:nil shareParams:shareParams sheetConfiguration:nil onStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
// 根据state对分享结果做不同的业务逻辑
}];
后期处理:
测试成功之后将自己的APP对应申请的微信、qq、Mob账号所获得的key、Secret、scheme做出相应替换!