集成ShareSDK分享当前屏幕图片的方法

2024-06-04 06:48

本文主要是介绍集成ShareSDK分享当前屏幕图片的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在做一个关于跑步的软件,集成了ShareSDK分享的平台,下面直接上代码(写的不好的地方,希望各位指出,谢谢):


-(void)btnShare
{
    // download URL
    NSString *strURL = [NSString stringWithFormat:@"http://dev.kumoway.com/healthrun"];
    
    DatabaseManager *dm = [[DatabaseManager alloc] init];
    VHSActionData *actionlData = [dm selectOneFromActionLst:_actionId];
    
    // 微博文字内容140字
    NSString *strWeibo = [NSString stringWithFormat:@"我在%@,使用“Runner”运动了%0.2f公里,用时%@。\n\nhttp://dev.kumoway.com/healthrun\n",actionlData.startTime,actionlData.distance,[VHSCommon getHmsFromSecond:actionlData.seconds]];
    
    UIImage *shareimage =  [self imageFromView:self.view];
    
    // 分享内容协议
    id<ISSContent> publishContent = [ShareSDK content:strWeibo
                                       defaultContent:strWeibo
                                                image:[ShareSDK pngImageWithImage:shareimage]
                                                title:@"Runner"
                                                  url:strURL
                                          description:nil
                                            mediaType:SSPublishContentMediaTypeImage];
    
    // 定制邮件
    [publishContent addMailUnitWithSubject:@"Runner"
                                   content:strWeibo
                                    isHTML:[NSNumber numberWithBool:NO]
                               attachments:INHERIT_VALUE
                                        to:INHERIT_VALUE
                                        cc:INHERIT_VALUE
                                       bcc:INHERIT_VALUE];
    
    //定制新浪微博
    [publishContent addSinaWeiboUnitWithContent:INHERIT_VALUE
                                          image:INHERIT_VALUE];
    
    //定制微信好友信息
    [publishContent addWeixinSessionUnitWithType:INHERIT_VALUE
                                         content:INHERIT_VALUE
                                           title:@"Runner"
                                             url:INHERIT_VALUE
                                      thumbImage:INHERIT_VALUE
                                           image:INHERIT_VALUE
                                    musicFileUrl:nil
                                         extInfo:nil
                                        fileData:nil
                                    emoticonData:nil];
    
    // 定制QQ
    [publishContent addQQUnitWithType:[NSNumber numberWithInt:SSPublishContentMediaTypeImage]
                              content:INHERIT_VALUE
                                title:INHERIT_VALUE
                                  url:strURL
                                image:INHERIT_VALUE];
    
    //定制人人网信息
    [publishContent addRenRenUnitWithName:@"Runner"
                              description:strWeibo
                                      url:INHERIT_VALUE
                                  message:strWeibo
                                    image:[ShareSDK pngImageWithImage:shareimage]
                                  caption:INHERIT_VALUE];
    
    //创建弹出菜单容器
    id<ISSContainer> container = [ShareSDK container];
    [container setIPadContainerWithView:self.view arrowDirect:UIPopoverArrowDirectionAny];
    
    //设置导航栏的view delegate
    viewDelegate = [[AGViewDelegate alloc] init];
    
    id<ISSAuthOptions> authOptions = [ShareSDK authOptionsWithAutoAuth:YES
                                                         allowCallback:YES
                                                         authViewStyle:SSAuthViewStyleFullScreenPopup
                                                          viewDelegate:viewDelegate
                                               authManagerViewDelegate:viewDelegate];
    //在授权页面中添加关注官方微博
    [authOptions setFollowAccounts:[NSDictionary dictionaryWithObjectsAndKeys:
                                    [ShareSDK userFieldWithType:SSUserFieldTypeName value:@"ShareSDK"],
                                    SHARE_TYPE_NUMBER(ShareTypeSinaWeibo),
                                    [ShareSDK userFieldWithType:SSUserFieldTypeName value:@"ShareSDK"],
                                    SHARE_TYPE_NUMBER(ShareTypeTencentWeibo),
                                    nil]];
    
    id<ISSShareOptions> shareOptions = [ShareSDK defaultShareOptionsWithTitle:@"Runner"
                                                              oneKeyShareList:[NSArray defaultOneKeyShareList]
                                                               qqButtonHidden:YES
                                                        wxSessionButtonHidden:YES
                                                       wxTimelineButtonHidden:YES
                                                         showKeyboardOnAppear:NO
                                                            shareViewDelegate:viewDelegate
                                                          friendsViewDelegate:viewDelegate
                                                        picViewerViewDelegate:nil];
    
    // 定制分享列表
    NSArray *shareList = [ShareSDK getShareListWithType:
                          ShareTypeWeixiSession,
                          ShareTypeWeixiTimeline,
                          ShareTypeQQ,
                          ShareTypeSinaWeibo,
                          ShareTypeRenren,
                          ShareTypeDouBan,
                          nil];
    
    //弹出分享菜单
    [ShareSDK showShareActionSheet:container
                         shareList:shareList
                           content:publishContent
                     statusBarTips:YES
                       authOptions:authOptions
                      shareOptions:shareOptions
                            result:^(ShareType type, SSResponseState state, id<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> error, BOOL end) {
                                
                                bgView.hidden = YES;
                                
                                if (state == SSResponseStateSuccess)
                                {
                                    [PXAlertView showAlertWithTitle:@"提示" message:@"分享成功" cancelTitle:LABEL_BUTTON_CONFIRM completion:^(BOOL cancelled) {
                                    }];
                                }
                                else if (state == SSResponseStateFail)
                                {
                                    [PXAlertView showAlertWithTitle:@"提示" message:@"分享失败" cancelTitle:LABEL_BUTTON_CONFIRM completion:^(BOOL cancelled) {


                                    }];
                                }
                            }];

}

// iphone 截屏方法

- (UIImage *)imageFromView:(UIView *)theView
{
    UIGraphicsBeginImageContext(theView.frame.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [theView.layer renderInContext: context];
    UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return theImage;
}

这篇关于集成ShareSDK分享当前屏幕图片的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1029355

相关文章

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

SpringBoot使用注解集成Redis缓存的示例代码

《SpringBoot使用注解集成Redis缓存的示例代码》:本文主要介绍在SpringBoot中使用注解集成Redis缓存的步骤,包括添加依赖、创建相关配置类、需要缓存数据的类(Tes... 目录一、创建 Caching 配置类二、创建需要缓存数据的类三、测试方法Spring Boot 熟悉后,集成一个外