博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ShareSDK自定义UI的方法
阅读量:5813 次
发布时间:2019-06-18

本文共 9567 字,大约阅读时间需要 31 分钟。

说明:我们的分享菜单可以修改背景,里面的图标以及文字,颜色等,另外可以自己自定义UI,用自己的方法写界面,写好了之后可以调用我们以下无UI的分享方法,另外我们的UI也是开源的。

一、无 UI 分享

#import 
//创建分享参数 NSMutableDictionary *shareParams = [NSMutableDictionary dictionary]; [shareParams SSDKSetupShareParamsByText:@"分享内容" images:images //传入要分享的图片 url:[NSURL URLWithString:@"http://mob.com"] title:@"分享标题" type:SSDKContentTypeAuto]; //进行分享 [ShareSDK share:SSDKPlatformTypeSinaWeibo //传入分享的平台类型 parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { // 回调处理....}]; }

二、自定义分享菜单栏样式

// 弹出分享菜单需要导入的头文件#import 
#import
// 自定义分享菜单栏需要导入的头文件#import
#自定义分享编辑界面所需要导入的头文件#import
//1、创建分享参数(必要) NSMutableDictionary *shareParams = [NSMutableDictionary dictionary]; NSArray* imageArray = @[[UIImage imageNamed:@"图片名.png"]]; (注意:图片必须要在Xcode左边目录里面,名称必须要传正确,如果要分享网络图片,可以这样传iamge参数 images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"]) [shareParams SSDKSetupShareParamsByText:@"分享内容" images:imageArray url:[NSURL URLWithString:@"http://mob.com"] title:@"分享标题" type:SSDKContentTypeAuto]; // 设置分享菜单栏样式(非必要) // 设置分享菜单的背景颜色 [SSUIShareActionSheetStyle setActionSheetBackgroundColor:[UIColor colorWithRed:249/255.0 green:0/255.0 blue:12/255.0 alpha:0.5]]; // 设置分享菜单颜色 [SSUIShareActionSheetStyle setActionSheetColor:[UIColor colorWithRed:21.0/255.0 green:21.0/255.0 blue:21.0/255.0 alpha:1.0]]; // 设置分享菜单-取消按钮背景颜色 [SSUIShareActionSheetStyle setCancelButtonBackgroundColor:[UIColor colorWithRed:21.0/255.0 green:21.0/255.0 blue:21.0/255.0 alpha:1.0]]; // 设置分享菜单-取消按钮的文本颜色 [SSUIShareActionSheetStyle setCancelButtonLabelColor:[UIColor blackColor]]; // 设置分享菜单-社交平台文本颜色 [SSUIShareActionSheetStyle setItemNameColor:[UIColor whiteColor]]; // 设置分享菜单-社交平台文本字体 [SSUIShareActionSheetStyle setItemNameFont:[UIFont systemFontOfSize:10]]; //设置分享编辑界面的导航栏颜色 [SSUIEditorViewStyle setiPhoneNavigationBarBackgroundColor:[UIColor blackColor]]; //设置编辑界面标题颜色 [SSUIEditorViewStyle setTitleColor:[UIColor redColor]]; //设置取消发布标签文本颜色 [SSUIEditorViewStyle setCancelButtonLabelColor:[UIColor blueColor]]; [SSUIEditorViewStyle setShareButtonLabelColor:[UIColor blueColor]]; //设置分享编辑界面状态栏风格 [SSUIEditorViewStyle setStatusBarStyle:UIStatusBarStyleLightContent]; //设置简单分享菜单样式 [SSUIShareActionSheetStyle setShareActionSheetStyle:ShareActionSheetStyleSimple]; //2、弹出ShareSDK分享菜单 [ShareSDK showShareActionSheet:view items:nil shareParams:shareParams onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) { ...... }

三、跳过分享的编辑界面

设置弹出分享菜单,直接点击菜单中的平台分享(跳过分享的编辑界面)。

#import 
#import
//先构造分享参数: NSMutableDictionary *shareParams = [NSMutableDictionary dictionary]; [shareParams SSDKSetupShareParamsByText:@"分享内容" images:@[[UIImage imageNamed:@"shareImg.png"]] url:[NSURL URLWithString:@"http://mob.com"] title:@"分享标题" type:SSDKContentTypeAuto]; //有的平台要客户端分享需要加此方法,例如微博 [shareParams SSDKEnableUseClientShare]; //调用分享的方法 SSUIShareActionSheetController *sheet = [ShareSDK showShareActionSheet:view items:nil shareParams:shareParams onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) { switch (state) { case SSDKResponseStateSuccess: NSLog(@"分享成功!"); break; case SSDKResponseStateFail: NSLog(@"分享失败%@",error); break; case SSDKResponseStateCancel: NSLog(@"分享已取消"); break; default: break; } }]; //删除和添加平台示例 [sheet.directSharePlatforms removeObject:@(SSDKPlatformTypeWechat)];(默认微信,QQ,QQ空间都是直接跳客户端分享,加了这个方法之后,可以跳分享编辑界面分享) [sheet.directSharePlatforms addObject:@(SSDKPlatformTypeSinaWeibo)];(加了这个方法之后可以不跳分享编辑界面,直接点击分享菜单里的选项,直接分享)

四、隐藏“微信收藏”平台

[ShareSDK registerActivePlatforms:@[                            // 不要使用微信总平台进行初始化                            //@(SSDKPlatformTypeWechat),                            // 使用微信子平台进行初始化,即可                            @(SSDKPlatformSubTypeWechatSession),                            @(SSDKPlatformSubTypeWechatTimeline)                            ]           onImport:^(SSDKPlatformType platformType)           {               switch (platformType)                  {                         case SSDKPlatformTypeWechat:                             [ShareSDKConnector connectWeChat:[WXApi class]];                             break;                        default:                             break;                     }                  }          onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)          {              switch (platformType)              {                   case SSDKPlatformTypeWechat:                      [appInfo SSDKSetupWeChatByAppId:@"wx4868b35061f87885"                                            appSecret:@"64020361b8ec4c99936c0e3999a9f249"];                      break;                   default:                      break;              }          }];

五、(分享菜单)平台顺序自定义

ShareSDK提供的UI (分享菜单) 平台顺序自定义。

//分享    [ShareSDK showShareActionSheet:nil                       //将要自定义顺序的平台传入items参数中                       items:@[@(SSDKPlatformTypeMail),                               @(SSDKPlatformTypeSMS),                               @(SSDKPlatformTypeCopy),                               @(SSDKPlatformTypeFacebook),                               @(SSDKPlatformTypeTwitter),                               @(SSDKPlatformTypeWechat),                               @(SSDKPlatformTypeQQ)]                       shareParams:shareParams               onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) { .......}];

六、自定义分享菜单项

如果想在我们的分享菜单上添加一个自己的按钮,处理自己想要做的事件,如下所示:

#import 
//添加一个自定义的平台(非必要) SSUIShareActionSheetCustomItem *item = [SSUIShareActionSheetCustomItem itemWithIcon:[UIImage imageNamed:@"Icon.png"] label:@"自定义" onClick:^{ //自定义item被点击的处理逻辑 NSLog(@"=== 自定义item被点击 ==="); UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"自定义item被点击" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alertView show]; }]; NSArray * platforms =@[@(SSDKPlatformSubTypeQQFriend),@(SSDKPlatformSubTypeWechatSession),@(SSDKPlatformTypeTencentWeibo),item];//再把声明的platforms对象传进分享方法里的items参数里 [ShareSDK showShareActionSheet:nil items:platforms shareParams:shareParams onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {}

转载地址:http://hmtbx.baihongyu.com/

你可能感兴趣的文章
CF1119F Niyaz and Small Degrees
查看>>
24飞机大战_面向对象设计类
查看>>
每天一个linux命令(17):whereis 命令
查看>>
css3新特性
查看>>
vector中pair的排序方法
查看>>
Yii框架和Vue的完美结合构建前后端分离项目
查看>>
Timer计时器 例2
查看>>
MGR Switch single-Primary to Muti_primary
查看>>
plsql开发子程序与包之前的简单回顾
查看>>
剑指offer六:反转链表
查看>>
表格隔行变色效果,鼠标悬浮高亮显示
查看>>
架构师都要懂哪些知识
查看>>
用cmd查看win8版本 激活等详细信息命令
查看>>
获取root权限
查看>>
Tripwire配置和运行
查看>>
poj 1470 Closest Common Ancestors (LCA)
查看>>
linux虚拟机磁盘扩展与分区大小调整
查看>>
TOAD常用快捷键
查看>>
更多API知识学习
查看>>
JS 时间格式转换日期格式
查看>>