本文主要讲解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. 用 CSS 实现元素垂直居中,有哪些好的方案?

    1.不知道自己高度和父容器高度的情况下, 利用绝对定位只需要以下三行: parentElement{ position:relative; } childElement{ position: abso ...

  2. Code optimization and organization in Javascript / jQuery

    This article is a combined effort of Innofied Javascript developers Puja Deora and Subhajit Ghosh) W ...

  3. SQL Server 2008——SQL命令INSERT

    T-SQL的INSERT命令的语法: INSERT [INTO]     {table_name|view_name}     [{(column_name,column_name,-)}]     ...

  4. POSTGRESQL 查看数据库 数据表大小

    1.查看数据库大小: select pg_database_size('log_analysis'); select pg_database_size('log_analysis'); pg_data ...

  5. 2721: [Violet 5]樱花|约数个数

    先跪一发题目背景QAQ 显然x,y>n!,然后能够设y=n!+d 原式子能够化简成 x=n!2d+n! 那么解的个数也就是n!的因子个数,然后线性筛随便搞一搞 #include<cstdi ...

  6. Audition CC2019 MME设备内部错误怎么解决!

    安装完了AA2019,没有想到像昨天安装系统那么不顺利... 当然出现问题的原因是因为我安装了win10 并且我禁用了麦克风的所有应用权限. 设置里面搜索 麦克风 权限 Ok工作啦, 好开森~     ...

  7. css布局 三栏 自动换行

    1.代码实现 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UT ...

  8. Java反射机制的使用(全)

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6566957.html  一:反射是什么 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有 ...

  9. Java线程池的使用以及原理

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6543909.html  一:线程池简介 在使用多线程来提高处理器利用率的同时,由于线程的不断创建和销毁所造成的 ...

  10. ScrollView嵌套EditText联带滑动的解决的方法

    本篇文章的相关内容需结合上文:从ScrollView嵌套EditText的滑动事件冲突分析触摸事件的分发机制以及TextView的简要实现和冲突的解决的方法 在说完了怎样解决ScrollView嵌套E ...