模拟器集成3DTouch-b
本文主要讲解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 好吧我还是贴图片吧
<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 的群文件中,需要的同学可以进群下载
如上文所述有什么不符的地方,欢迎大家支出,我们一起学习,一起成长
链接:http://www.jianshu.com/p/bee70b729343 感谢分享
模拟器集成3DTouch-b的更多相关文章
- 将报表移动端集成到自有移动端app方法【IOS、Android】
应用场景 用户有自己的app,希望把报表的移动端[本文中以FineReport移动端为例]功能集成到他们的app里面去,而不需要安装两个app.Android端和IOS端的集成接口是不一样的,下面我们 ...
- 【转】使用命令行方式创建和启动android模拟器
原文网址:http://blog.csdn.net/tiandinilv/article/details/8953001 1.Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的 ...
- 解决Xcode8模拟器无法删除应用的问题
关闭模拟器的3DTouch.Hardware →Touch Pressure→Use Trackpad Force.
- Android模拟器基本使用和常用工具介绍
注:其中部分内容参考网上资源 1.Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的移动设备.Android的模拟器是基于QEMU开发的,QEMU是一个有名的开源虚拟机项目(详 ...
- ios9 -3dtouch 手势添加到app上
模拟器实现3dtouch参考以下网站: http://my.oschina.net/u/2340880/blog/511509 - (BOOL)application:(UIApplication * ...
- 3D-Touch Home Screen Quick Actions 使用
1. 3D-Touch简单介绍 3D-Touch是iPhone 6s推出的一种可以让你与手机进行互动的全新方式.这一次,iPhone 能够感应你按压屏幕的力度.除了轻点.轻扫.双指开合这些熟悉的 Mu ...
- WP7.1 应用程序发布到Marketplace
从8月22起Windows Phone marketplace可以提交7.1 sdk开发的应用了,尽管提交页面和方式与7.0是同一个,但是还是会出现一些问题.并且在提交之前也注意一些问题. 7.0 应 ...
- eclipse + Android Studio 集成 Genymotion 模拟器
Genymotion 官网 -- android 模拟器https://www.genymotion.com 虚拟机下载安装目录C:\Users\xxx\AppData\Local\Genymobil ...
- Android Studio集成到Genymotion模拟器
环境:Mac Android Studio 一.下载Android Studio 下载地址:http://www.android-studio.org/ 这个的安装没啥好说的了,基本的. 二.下载Ge ...
随机推荐
- Emeditor V14注册码
Emeditor V14注册码 姓 名:ttrar.com 序 列 号:DKAZQ-R9TYP-5SM2A-9Z8KD-3E2RK
- Code optimization and organization in Javascript / jQuery
This article is a combined effort of Innofied Javascript developers Puja Deora and Subhajit Ghosh) W ...
- windows 下 nginx 的启动 停止 关闭
停止 nginx -s stop 重新加载配置文件(改动了参数无需重启,只有执行重新加载即可)nginx -s reload 退出 停止 关闭nginx -s quit
- CSDN博客QQ加群、微信
对于QQ加群我一直是拒绝的,不是自己摆姿态,而是实在没有这种影响力和能力.然而今日一朋友的话改变了我这种想法,所以尝试在CSDN博客首页上增加QQ加群功能.此博客也就权当一个记录(主要是为了上传一张二 ...
- android sdk更新代理设置
mirrors.neusoft.edu.cn 80
- hadoop multipleoutputs
http://grepalex.com/2013/05/20/multipleoutputs-part1/ http://grepalex.com/2013/07/16/multipleoutputs ...
- 在hadoop上运行java文件
hadoop 2.x版本 编译:javac -d . -classpath /usr/lib/hadoop/hadoop-common-2.2.0.2.0.6.0-102.jar TestGetPat ...
- sqlserver 日志查看
sqlserve的ErrorLog文件有时候会碰到文件很大的情况,可能通过命令xp_readerrorlog 或 sp_readerrorlog 执行,可以加搜索文本或起止时间 -- 日志查看 --e ...
- [转发]如何在ASP.NET的web.config配置文件中添加MIME类型
常常有一些特殊的MIME类型是IIS中没有的,一般来说要我们自己手动添加.如果网站经常更换服务器或者网站代码是提供给多个用户使用,那么会造成网站中用到的特殊的MIME类型要经常性的在IIS上配置.这里 ...
- oracle-sakila-db sakila的Oracle版本
在Sakila——MySQL样例数据库解析 中,学习了sakila for mysql的表结构.并把它作为数据仓库.ODI ETL学习的源数据库.ODI Studio拓扑结构的创建与配置 后来发现OD ...