本文主要讲解3DTouch各种场景下的集成,开发主屏幕应用icon上的快捷选项标签(Home Screen Quick Actions),静态设置 UIApplicationShortcutItem ,动态添加、修改UIApplicationShortcutItem,如有需要,也可以联系作者QQ群 139852091

一、准备

3DTouch 是iOS9时出来的,需要硬件配合,也就是说只有iPhone 6s 或者更晚的手机才支持的功能,所以我们集成测试3DTouch的时候要准备iPhone 6s 或者更晚的手机一部,但是我穷啊,还在用最初的iPhone 5s 到网上搜索一下,牛人就是多,github上早就有人为我们提供了这样的一个插件,可以让我们在模拟器上进行3D Touch的效果测试,(如果有土豪朋友,可以直接跳过本项,直接看二、应用添加快捷菜单)

https://github.com/DeskConnect/SBShortcutMenuSimulator

安装和使用git主页里介绍的很清楚,但是考虑到英文水平差的同学,我们重新操作一遍

打开终端  依次输入以下命令

git clone https://github.com/DeskConnect/SBShortcutMenuSimulator.git

cd SBShortcutMenuSimulator

make

xcrun simctl spawn booted launchctl debug system/com.apple.SpringBoard --environment DYLD_INSERT_LIBRARIES=$PWD/SBShortcutMenuSimulator.dylib

xcrun simctl spawn booted launchctl stop com.apple.SpringBoard

好现在已经安装完成,测试一下是否安装成功

echo 'com.apple.mobilecal' | nc 127.0.0.1 8000

通过上面这个代码,我们打开的是日历程序的3DTouch功能

而上面的  com.apple.mobilecal 是一个 Bundle_Id,如果测试自己的程序,修改成自己的Bundle_Id 即可 测试完不要关闭终端,等下次使用

#pragma warning

#pragma warning

#pragma warning

重点注意的是本插件只能在xcode模拟器iOS9.1使用,如果没有iOS 9.1的模拟器可以进QQ群 139852091 群文件获取(不好意思,打了一广告)

准备工作就绪

二、应用添加快捷菜单

接下来就是代码篇了

1、静态添加

什么是 静态添加 呢?

静态添加我的理解为 程序没有启动过 就添加

可能有同学问,代码都是一步一步走的,怎么做到没有启动就能添加呢,其实道理很简单,我们每个人都有一个名字,比如说我叫 “齐广东”,这个名字是我在娘胎里我父母就给我起好的,我们的APP也是一样,静态添加就像我们给APP起名字一样,直接编辑配置文件 info.plist 就可以 添加的key为UIApplicationShortcutItems,类型为NSArray  好吧我还是贴图片吧

plistText形势

Xcode_plist形势

<array> <dict> <key>UIApplicationShortcutItemTitle</key> <string>第一个按钮所以我是老大</string> <key>UIApplicationShortcutItemType</key> <string>com.mycompany.myapp.one</string> </dict> <dict> <key>UIApplicationShortcutItemTitle</key> <string>我是第二个按钮我就是老二呗</string> <key>UIApplicationShortcutItemType</key> <string>com.mycompany.myapp.search</string> <key>UIApplicationShortcutItemIconType</key> <string>UIApplicationShortcutIconTypeSearch</string> <key>UIApplicationShortcutItemSubtitle</key> <string>我是副标题我是第二个按钮的小弟</string> <key>UIApplicationShortcutItemUserInfo</key> <dict> <key>key1</key> <string>value1</string> </dict> </dict> </array>

配置好以上,在AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

中添加代码如图

 

在AppDelegate

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler

中添加代码如图

 

(有想考代码的同学可以下载GitHub - zhanglinfeng/Demo3DTouch,来源iOS9新特性 3DTouch 开发教程全解(含源码) - 张林峰 - 博客园

这时我们就完成静态添加

有iPhone 6s或者更晚的手机,运行或者安装后即可使用,没有的把模拟器返回到桌面(comd+h)点出刚没有关闭的终端,输入命令

echo ' 你当前程序的 Bundle_Id' | nc 127.0.0.1 8000

这时候就会弹出刚才所添加的,我们盗张图看一下

 

弹出标示成功,这样,静态添加就完成了

2、动态添加

什么是 动态添加  呢?

静态添加我的理解为 程序运行通过代码编译 添加 也就是 代码方式写入

道理就像我叫“齐广东”,而我老婆喜欢叫我东东,这个名字是我出生后他给我起的(不是虐狗,举个例子而已/*其实可以不用这个例子的哈*/)

屁话说多了  直接上代码图片吧

 

配合静态添加的

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler

的两个方法也完成了动态添加

在 iOS9新特性 3DTouch 开发教程全解(含源码) - 张林峰 - 博客园  的博客中,注意事项已经讲得很清楚,我也不多废话,

我把代码进行简单封装一下,减少一些耦合性,放在了QQ群 139852091 的群文件中,需要的同学可以进群下载

如上文所述有什么不符的地方,欢迎大家支出,我们一起学习,一起成长

参考 :iOS9新特性 3DTouch 开发教程全解(含源码) - 张林峰 - 博客园

资源 :github.com/DeskConnect/SBShortcutMenuSimulator

链接:http://www.jianshu.com/p/bee70b729343  感谢分享

模拟器集成3DTouch-b的更多相关文章

  1. 将报表移动端集成到自有移动端app方法【IOS、Android】

    应用场景 用户有自己的app,希望把报表的移动端[本文中以FineReport移动端为例]功能集成到他们的app里面去,而不需要安装两个app.Android端和IOS端的集成接口是不一样的,下面我们 ...

  2. 【转】使用命令行方式创建和启动android模拟器

    原文网址:http://blog.csdn.net/tiandinilv/article/details/8953001 1.Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的 ...

  3. 解决Xcode8模拟器无法删除应用的问题

    关闭模拟器的​3DTouch.Hardware​ →Touch Pressure→Use Trackpad Force.

  4. Android模拟器基本使用和常用工具介绍

    注:其中部分内容参考网上资源 1.Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的移动设备.Android的模拟器是基于QEMU开发的,QEMU是一个有名的开源虚拟机项目(详 ...

  5. ios9 -3dtouch 手势添加到app上

    模拟器实现3dtouch参考以下网站: http://my.oschina.net/u/2340880/blog/511509 - (BOOL)application:(UIApplication * ...

  6. 3D-Touch Home Screen Quick Actions 使用

    1. 3D-Touch简单介绍 3D-Touch是iPhone 6s推出的一种可以让你与手机进行互动的全新方式.这一次,iPhone 能够感应你按压屏幕的力度.除了轻点.轻扫.双指开合这些熟悉的 Mu ...

  7. WP7.1 应用程序发布到Marketplace

    从8月22起Windows Phone marketplace可以提交7.1 sdk开发的应用了,尽管提交页面和方式与7.0是同一个,但是还是会出现一些问题.并且在提交之前也注意一些问题. 7.0 应 ...

  8. eclipse + Android Studio 集成 Genymotion 模拟器

    Genymotion 官网 -- android 模拟器https://www.genymotion.com 虚拟机下载安装目录C:\Users\xxx\AppData\Local\Genymobil ...

  9. Android Studio集成到Genymotion模拟器

    环境:Mac Android Studio 一.下载Android Studio 下载地址:http://www.android-studio.org/ 这个的安装没啥好说的了,基本的. 二.下载Ge ...

随机推荐

  1. MFC对话框:模态对话框及其弹出过程

    From: http://www.jizhuomi.com/school/c/160.html 加法计算器对话框程序大家照着做一遍后,相信对基于对话框的程序有些了解了,有个好的开始对于以后的学习大有裨 ...

  2. MonoDB的数据准备

      首先是数据的录入,为了分析我们服务器集群的性能,需要准备大量的用户数据,幸运的是mtools提供了mgenerate方法供我们使用.他可以根据一个数据模版向 MongoDB 中插入任意条 json ...

  3. ifdef ANDROID总是不好用

    在vs的proprocessor definition中定义了ANDRIOD, 但是执行下面的代码的时候,总是说ANDROID is not defined.     #ifdef ANDROID   ...

  4. 【Python】将对象存成json文件及从json取出对象

    常用代码,单拎出来以备查. 对象存json文件: import json obj={'name':'张有财','age':39,'arr':[2,34,5,6,7,88,'李有钱']} with op ...

  5. Python爬虫学习系列教程

    最近想学一下Python爬虫与检索相关的知识,在网上看到这个教程,觉得挺不错的,分享给大家. 来源:http://cuiqingcai.com/1052.html 一.Python入门 1. Pyth ...

  6. javascript链式语法

    因为 jQuery 库的缘故,链式语法在前端界变得非常流行.实际上这是一种非常容易实现的模式.基本上,你只需要让每个函数返回 'this',这样其他函数就可以立即被调用.看看下面的例子. var bi ...

  7. 微信小程序 - 分包加载(分包使用)

    使用分包(建议主包添加跳转路径,分包放内容) 在app.json配置"subpackages" 在pages同级目录新建文件夹以及文件 打包原则 声明 subpackages 后, ...

  8. 微软BI 之SSRS 系列 - 解决Pie Chart 中控制标签外部显示与标签重叠的问题

    当 Pie Chart 页面标签过多的时候,往往数字标签内容挤做一团.我们要做的是:第一,让标签在饼图外部显示:第二,不让标签重叠. 一种做法是通过修改数字标签属性 - Series Label Pr ...

  9. Maven构建应用程序常用配置(转)

    来自:http://shiyanjun.cn/archives/180.html 使用Maven来构建应用程序,可以非常方便地管理应用相关的资源.众所周知,应用程序中涉及到的一些依赖关系,如Java应 ...

  10. uva 11346 - Probability(概率)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=2321">题目链接:uva 11346 - ...