UIActivityViewController 系统社交化 共享

1.UIActivityViewController是继承自UIViewController,是拥有VC的特性

a.初始化 init  , initWithActivityItems:applicationActivities

UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[@"Steve Jobs by waiter lsaacson"] applicationActivities:nil];

b.点击某个选项之后所能处理的操作 completionWithItemsHandler(Block, >8.0) completionHandler(Block, <8.0)

activity.completionWithItemsHandler = ^(NSString * __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError){
        NSLog(@"hahahhahaha");
        if (completed) {
            NSLog(@"completed");
        }else{
            NSLog(@"cancel");
        }
    };

c.剔除不需要的操作项  excludedActivityTypes

//该属性 表示去掉不想显示的按钮
    activity.excludedActivityTypes = @[UIActivityTypeAirDrop,UIActivityTypeMessage];

d.展示改控制器     (中间一栏的分享型服务,下面一栏的操作型服务)

[self.navigationController presentViewController:activity animated:YES completion:nil];

     /*
      [self.navigationController pushViewController:activity animated:YES]; 会报错
      Snapshotting a view that has not been rendered results in an empty snapshot.
      Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.
      */

2.自定义选项 Item (UIActivity子类即可)

#import <UIKit/UIKit.h>

@interface HGLActivity : UIActivity

@end
#import "HGLActivity.h"
 NSString *const UIActivityTypeHGLCustomMine = @"HGLCustomActivityMine";
@implementation HGLActivity

// default returns nil. subclass may override to return custom activity type that is reported to completion handler
- (NSString *)activityType{
    return UIActivityTypeHGLCustomMine;
}

// default returns nil. subclass must override and must return non-nil value
- (NSString *)activityTitle{ //展示的问题介绍
    return NSLocalizedString(@"HGL Custom", @"");
}

// default returns nil. subclass must override and must return non-nil value
- (UIImage *)activityImage{  //展示的图标
    UIImage *im = [UIImage imageNamed:@"xl"];
    return im;
}

//可以被响应
- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems{
    return YES;
}

- (void)prepareWithActivityItems:(NSArray *)activityItems{
    NSLog(@"prepareWithActivityItems");
    //点击图片之后触发
//    UIActivityViewController 传递的 activityItems
}

- (void)performActivity{
    NSLog(@"performActivity");
//    调用prepareWithActivityItems 之后出发
}

+ (UIActivityCategory)activityCategory{
//    return UIActivityCategoryAction;  //下面一栏的操作型服务
    return UIActivityCategoryShare ;  //中间一栏的分享型服务
}

@end

*初始化是UIActivityViewController 最后一个参数为数组

UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[@"Steve Jobs by waiter lsaacson",[[NSBundle mainBundle] URLForResource:@"hgl29" withExtension:@"txt"]] applicationActivities:@[[[HGLActivity alloc]init]]];

时间: 2024-08-09 01:04:06

UIActivityViewController 系统社交化 共享的相关文章

社交化分享SDK

前言 社交化分享,即分享到社交网络. 本文主要记录的是在Unity集成社交化分享SDK,现主流的分享SDK有如下: 1.友盟社交化分享 for unity 2.ShareSDK分享 for unity SDK分享 下面看一下SDK的Demo的分享 左图友盟分享Demo,右图Share SDK分享Demo QQ分享单独大图 比如,在游戏中分享某角色的卡牌信息,整屏大图,发送给QQ好友,如下所示,或应用中截取整个屏幕发送給QQ好友. 但我联系过Share SDK的技术和友盟的技术,均表示目前SDK

搜狐畅言社交化评论插件接入之单点登录

很久以前就想做关于Jfinal的社区,可是苦于不像去写那种留言与回复的那种功能,于是就想着要通过第三方的那种社交评论插件去完成这种功能呢,而且还想着去使用那种一件登录,可是又不想去申请所谓的APPKEY和APPID,处于这种偷懒的心态,所以就有了这一篇博文.假如你也有这种类似的想法,大家可以一起来看看. 关于这个插件,我就不多说了,链接在这里大家自己去点,完了自己去了解,申请账号及相关的设置. 畅言插件主页: http://changyan.kuaizhan.com/ 重要的: 强烈建议大家在使

CRM系统PaaS化,满足企业个性化需求

一千个人,有千种长像,一千个企业,有各种需求.有千种流程,标准模式的CRM系统很难满足个性化流程及需求的企业,那么CRM系统要Paas化,才能满足个性化需求的企业. PaaS是什么? PaaS是Platform-as-a-Service的缩写,意思是平台即服务. 把服务器平台作为一种服务提供的商业模式.通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS(Platform as a Ser

win7系统用笔记本共享wifi热点 让手机免费上网

之前一直在用这个方法把自己的笔记本变成一个wifi热点,让手机也可以直接连wifi上网,节省网费和路由器购买费. 其实就是开启了windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP).让笔记本变成无线路由器,实现共享上网. 感觉很实用,就分享给大家.有需要的朋友可以试试.华硕和联想IBMT500笔记本亲测通过. 以操作系统为win7的笔记本或装有无线网卡的台式机作为主机. 主机设置如下: 1.以管理员身份运行命令提示符:快捷键win+R→输入cmd→回车 2.启用并设定虚拟W

Linux系统最小化安装

Linux系统最小化安装详解 1.使用U盘镜像引导或者使用光驱加载光盘引导 图1-1 选择Install or upgrade an existing system Install or upgrade an existing system #安装或升级现有的系统install system with basic video driver #安装过程中采用 基本的显卡驱动,安装的时候只用到基本的图形功能,一般显卡都支持的模式Rescue installed system #进入系统修复模式(忘记

HtmlAgilityPack解析器在WP8.1下报错,不仅如此,社交化分享也报错。

以前WP7下是用的HtmlAgilityPack和 XPath来解析网页,很好用. 但是在Wp8.1下,这个里面却缺少了一个很重要的方法. 1 HtmlDocument doc = new HtmlDocument(); //实例化HtmlDocument对象 2 doc.LoadHtml(html); //载入HTML 3 var tags = doc.DocumentNode.SelectNodes("//li"); //根据HTML节点NODE的ID获取节点 SelectNode

Apache shiro集群实现 (七)分布式集群系统下---cache共享

Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication) Apache shiro集群实现 (四)shiro授权(Authentication)--访问控制 Apache shiro集群实现 (五)分布式集群系统下的高可用session解决方案 Apache shiro集群实现 (六)分布式集群系统下的高可用session

iOS- 三步快速集成社交化分享工具ShareSDK

http://www.cnblogs.com/qingche/p/3727559.html 1.前言 作为现在App里必不可少的用户分享需要,社交化分享显然是我们开发app里较为常用的. 最近因为公司App有社交化分享的需要,就特此研究了会,拿出来与大家分享. 想要集成社交会分享,我们可以使用 ShareSDK - 优点功能丰富,缺点体积较大 百度分享SDK - 缺点功能相对ShareSDK较少,优点体积较小 这是现在较为常用的两种社交化分享工具. 使用哪一种,就看个人的app的需要来决定了.

服务器无法通过系统非页面共享区来进行分配,因为共享区当前是空的

服务器莫名奇妙卡死,重启完服务器以后,又出现服务器卡死现象.查看一下日志发现有错误提示 服务器无法通过系统非页面共享区进行分配问题 . 来源:SRV 事件ID:2019 描述(D): 服务器无法通过系统非页面共享区来进行分配,因为共享区当前是空的. 上网查了一下,微软给出的解决方法如下: 1. 启动注册表编辑器 (Regedt32.exe). 2. 在注册表中找到并单击以下注册表项: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Sess