集成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

相关文章

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v