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

相关文章

Nginx 访问控制的多种方法

《Nginx访问控制的多种方法》本文系统介绍了Nginx实现Web访问控制的多种方法,包括IP黑白名单、路径/方法/参数控制、HTTP基本认证、防盗链机制、客户端证书校验、限速限流、地理位置控制等基... 目录一、IP 白名单与黑名单1. 允许/拒绝指定IP2. 全局黑名单二、基于路径、方法、参数的访问控制

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req

nginx跨域访问配置的几种方法实现

《nginx跨域访问配置的几种方法实现》本文详细介绍了Nginx跨域配置方法,包括基本配置、只允许指定域名、携带Cookie的跨域、动态设置允许的Origin、支持不同路径的跨域控制、静态资源跨域以及... 目录一、基本跨域配置二、只允许指定域名跨域三、完整示例四、配置后重载 nginx五、注意事项六、支持

MySQL查看表的历史SQL的几种实现方法

《MySQL查看表的历史SQL的几种实现方法》:本文主要介绍多种查看MySQL表历史SQL的方法,包括通用查询日志、慢查询日志、performance_schema、binlog、第三方工具等,并... 目录mysql 查看某张表的历史SQL1.查看MySQL通用查询日志(需提前开启)2.查看慢查询日志3.

MySQL底层文件的查看和修改方法

《MySQL底层文件的查看和修改方法》MySQL底层文件分为文本类(可安全查看/修改)和二进制类(禁止手动操作),以下按「查看方法、修改方法、风险管控三部分详细说明,所有操作均以Linux环境为例,需... 目录引言一、mysql 底层文件的查看方法1. 先定位核心文件路径(基础前提)2. 文本类文件(可直

Java实现字符串大小写转换的常用方法

《Java实现字符串大小写转换的常用方法》在Java中,字符串大小写转换是文本处理的核心操作之一,Java提供了多种灵活的方式来实现大小写转换,适用于不同场景和需求,本文将全面解析大小写转换的各种方法... 目录前言核心转换方法1.String类的基础方法2. 考虑区域设置的转换3. 字符级别的转换高级转换

使用Python实现局域网远程监控电脑屏幕的方法

《使用Python实现局域网远程监控电脑屏幕的方法》文章介绍了两种使用Python在局域网内实现远程监控电脑屏幕的方法,方法一使用mss和socket,方法二使用PyAutoGUI和Flask,每种方... 目录方法一:使用mss和socket实现屏幕共享服务端(被监控端)客户端(监控端)方法二:使用PyA

检查 Nginx 是否启动的几种方法

《检查Nginx是否启动的几种方法》本文主要介绍了检查Nginx是否启动的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 systemctl 命令(推荐)2. 使用 service 命令3. 检查进程是否存在4

Java方法重载与重写之同名方法的双面魔法(最新整理)

《Java方法重载与重写之同名方法的双面魔法(最新整理)》文章介绍了Java中的方法重载Overloading和方法重写Overriding的区别联系,方法重载是指在同一个类中,允许存在多个方法名相同... 目录Java方法重载与重写:同名方法的双面魔法方法重载(Overloading):同门师兄弟的不同绝

MySQL字符串转数值的方法全解析

《MySQL字符串转数值的方法全解析》在MySQL开发中,字符串与数值的转换是高频操作,本文从隐式转换原理、显式转换方法、典型场景案例、风险防控四个维度系统梳理,助您精准掌握这一核心技能,需要的朋友可... 目录一、隐式转换:自动但需警惕的&ld编程quo;双刃剑”二、显式转换:三大核心方法详解三、典型场景