3DTouch-ShortcutItem - iOS9 - xcode7
据说苹果某个神秘的团队闭门潜心研发多年的3DTouch终于,应用在iOS9上,且公开了API。
在系统主界面用力按压 APP 图标,如上会出现自定义菜单
有两种方法可以实现
一.代码(这种方法也是可以动态的改变 3DTouch菜单的内容与功能):
第一步:自定义一个初始化菜单的方法;
-(void)init3DTouch{
if ([[UIDevice currentDevice] systemVersion].floatValue < 9.0) {
return;
}
UIApplication *app = [UIApplication sharedApplication];
NSMutableArray *its = [[app shortcutItems] mutableCopy];
if (its.count == ) {
NSMutableArray *items = [[NSMutableArray alloc] init];
UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd];
UIApplicationShortcutItem *i2 = [[UIApplicationShortcutItem alloc] initWithType:@"com.xiaomi.i2" localizedTitle:@"发起群聊" localizedSubtitle:@"" icon:icon2 userInfo:nil];
[items addObject:i2];
UIApplicationShortcutIcon *icon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeShare];
UIApplicationShortcutItem *i1 = [[UIApplicationShortcutItem alloc] initWithType:@"com.xiaomi.i1" localizedTitle:@"电话会议" localizedSubtitle:@"" icon:icon userInfo:nil];
[items addObject:i1];
[app setShortcutItems:items];
}
}
第二步:实现 UIApplication 协议来响应系统主页按压APP出现菜单的,菜单对应点击事件;
-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler{
if ([shortcutItem.type isEqualToString:@"com.xiaomi.i1"]) { // 点击菜单一 ‘发起群聊’ 执行的内容
}
else if ([shortcutItem.type isEqualToString:@"com.xiaomi.i2"]){ // 点击菜单二 ‘电话会议’ 执行的内容
}
}
// Called when the user activates your application by selecting a shortcut on the home screen,
// except when -application:willFinishLaunchingWithOptions: or -application:didFinishLaunchingWithOptions returns NO.
第三步:判断 launchOptions != nil 则返回NO;顺便获取激活APP的对象,手动执行所点击的菜单事件
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self init3DTouch];
// 当APP 不再后台运行时 通过3DTouch 激活APP,launchOptions不为空手动调用 performActionForShortcutItem
if ( launchOptions != nil ) {
UIApplicationShortcutItem *i = [launchOptions objectForKey: UIApplicationLaunchOptionsShortcutItemKey];
[self application:application performActionForShortcutItem:i completionHandler:^(BOOL succeeded) {
NSLog(@"launchOptions no null");
}];
return NO;
}
return YES;
}
二.info.plist
=============================
参考:http://www.jianshu.com/p/74fe6cbc542b
3DTouch-ShortcutItem - iOS9 - xcode7的更多相关文章
- 关于iOS9,Xcode7以上的安全性问题
目前伴随着苹果方面对安全性方面的重视,在Xcode开发过程中有时候会出现数据解析在view上不显示的问题 这是在iOS9,Xcode7以后苹果方面为了保护用户安全而采用的用户发送请求机制,那么在开发中 ...
- ios9+xcode7 适配笔记
升级了xcode7,最近ios9上马,又到了草泥马的时间,apple开放团队每次系统更新,都是无数个草泥马的适配夜晚,现在ios9上线以前的app竟然启动crash,这是要闹哪样. 1.微信和微博的s ...
- iOS开发者的福利 — — iOS9+Xcode7免越狱免证书直接调试
苹果发布Xcode7后, 开放了普通的AppleID也能真机调试( 非$99 或 $299, 只要能上AppStore下载应用的AppleID就行),下面教你具体做法,很简单的. 1.运行Xcode, ...
- iOS9 & Xcode7 下设置LaunchImage启动图片 问题及解决
最近在学习iOS开发,碰到一个设置启动图片的问题,怎么也搞不定,综合网上种种资料后Done,现在把完整过程写一下. 这里以建立一个空的Single View Application 为演示基础. 1. ...
- ios9 xcode7以后编译需要进行的几项设置
http://blog.csdn.net/hero82748274/article/details/48629461 1.库后缀变了:.dylib->tbd libsqlite3.0.dylib ...
- 【iOS9系列】-3DTouch开发
[iOS9系列]-3DTouch开发 第一:简介 3DTouch 是iOS9系统系统下,在iPhone6s(iPhone6s Plus)手机上才能够使用的功能.熟练使用后,发现还是很便捷的. 但是模拟 ...
- iOS - 3DTouch 3D 触摸
1.3DTouch 简介 3DTouch 是 iOS9 + 系统下,在 iPhone6s(iPhone6s Plus)+ 手机上才能够使用的功能. 1.1 3DTouch 基本类型 1.主屏幕快速选项 ...
- 3DTouch - iOS新特性
概述 3DTouch是一种立体触控技术,被苹果称为新一代多点触控技术. 详细 代码下载:http://www.demodashi.com/demo/10708.html 6s和6s plus之后特有效 ...
- iOS9 升级设置
今天升级了iOS9, Xcode7.1 ; 打开之前的工程发现网络请求出错了, 参照UM开发文档, 对info.plist进行了配置如下: 1. 以iOS9 SDK编译的工程会默认以SSL安全协议进行 ...
随机推荐
- Arduino中的数据类型范围
注意int不是4字节而仅仅是2字节!!! int: -32,768 ~ 32,767 (2字节) long: 4字节 http://www.arduino.cc/en/Reference/Int
- linux ubuntu 安装jdk
junluobj@junluobj:~$sudo mkdir /usr/lib/jvmwww.linuxidc.com@linuxidc:~$tar zvxf jdk-8u20-linux-x64.t ...
- 开启Nginx的gzip压缩功能详解
默认情况下,Nginx的gzip压缩是关闭的, gzip压缩功能就是可以让你节省不少带宽,但是会增加服务器CPU的开销哦,Nginx默认只对text/html进行压缩 ,如果要对html之外的内容进行 ...
- qq互联登陆开发流程
宋正河整理 百度文库在线观看: http://wenku.baidu.com/view/96da9744e518964bcf847c47.html?st=1 csdn免积分下载: http://dow ...
- MXML的一些基本语法
以下内容是一个视频的学习笔记<Flex4视频教程>,所以,先关记录也是以现在的Flash Builder为基础. <fx:Script/> 是脚本文件的声明 var代表数值, ...
- Python的pep8(代码规范)
Python的pep8-代码规范 1. 代码布局设计 1.1 缩进 A. 使用四个空格来进行缩进 B. 换行的时候可以使用反斜杠,最好的方法是使用园括号,在使用反斜杠的时候,在反斜 ...
- 【LeetCode】232 & 225 - Implement Queue using Stacks & Implement Stack using Queues
232 - Implement Queue using Stacks Implement the following operations of a queue using stacks. push( ...
- sharepoint站点锁定后解锁
MOSS站点备份过程中中断后导致整个站点处于锁定状态 其他的命令都无效,以下命令才解决问题 PS C:\Users\root> $Admin = new-object Microsoft.Sha ...
- c#装B指南
要想让自己的代码,看起来更优雅,更有逼格,更高大上,就一定要写出晦涩难懂,而又简洁的代码来. 对于类自身的全局变量,一定要加this,对于基类的,一定要加base.反射不要多,但一定要有,而且偶尔就来 ...
- 第三百二十五天 how can I 坚持
任何事情都是相对的,以后禁止专牛角尖. 今天在家堕落了一天,说好的把天气应用,照葫芦画瓢弄好,结果什么也没弄. 和你 有个毛线关系啊,哈哈,太逗了. 准备睡觉,一切随缘,反正想也没什么用,自己也搞不懂 ...