iOS开发之桌面快捷方式Quick Actions
<p>长按桌面APPIcon图标快捷操作添加功能开发</p><p>在支持 3D Touch 的设备上,Quick Actions 可以让用户更快,更少的操作步骤去完成他们最常做的事情,其中这么多操作可以通过主屏幕直接完成。比如用力地长按微信图标,会弹出诸如"扫一扫"和"我的二维码"等常用功能,这个我在加好友的情况下经常会用到,不是"扫"别人就是被别人"扫"。然后这是它的官方介绍,3D Touch - iOS - Apple Developer。</p>
<p>支持的设备是在 iPhone 6S 和 6S Plus 及后续出的 iPhone 系列,系统则是从 iOS 9.0 开始支持 3D Touch。</p>
<p><strong>Info.plist 创建快捷方式</strong></p>
<p>快捷方式支持在 Info.plist 里直接定义,主键是UIApplicationShortcutItems,它是一个数组Array。各个 Key 值可以在查看Information Property List Key Reference,在这里简单地介绍一下各个 Key 的作用。</p>
<table>
<thead>
<tr><th>Key</th><th>作用</th></tr>
</thead>
<tbody>
<tr>
<td>UIApplicationShortcutItemType(必需)</td>
<td>唯一标识</td>
</tr>
<tr>
<td>UIApplicationShortcutItemTitle(必需)</td>
<td>显示的标题</td>
</tr>
<tr>
<td>UIApplicationShortcutItemSubtitle(可选)</td>
<td>显示的副标题</td>
</tr>
<tr>
<td>UIApplicationShortcutItemIconType(可选)</td>
<td>使用系统的图标</td>
</tr>
<tr>
<td>UIApplicationShortcutItemIconFile(可选)</td>
<td>使用项目的图标</td>
</tr>
<tr>
<td>UIApplicationShortcutItemUserInfo(可选)</td>
<td>附加的信息</td>
</tr>
</tbody>
</table>
<p>以下是一个详细的例子,上述的 Key 除了 UIApplicationShortcutItemUserInfo 外,其它都实现了。</p>
<p><img src="https://img2022.cnblogs.com/blog/1347820/202204/1347820-20220413113332737-492020719.png" alt="" loading="lazy"></p>
<p> </p>
<p>现在我们来看看运行效果,值得一提的是,图标分别在上半屏和下半屏的情况下,显示的排序是会不同的,具体运行效果如下所示。</p>
<p>图标在上半屏</p>
<p><img src="https://img2022.cnblogs.com/blog/1347820/202204/1347820-20220413113404417-620608369.png" alt="" loading="lazy"></p>
<p> </p>
<p>图标在下半屏</p>
<p> </p>
<p> </p>
<p><img src="https://img2022.cnblogs.com/blog/1347820/202204/1347820-20220413113442470-1660167132.png" alt="" loading="lazy"></p>
<p> </p>
<p>判断用户点击了哪个快捷方式</p>
<p>通过在 AppDelegate.m 文件中实现 UIApplicationDelegate 的代理方法</p>
<p>application:performActionForShortcutItem:completionHandler:,可以得知用户是从哪个快捷方式进来的,具体代码如下。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:objc;gutter:true;">- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler API_AVAILABLE(ios(9.0)) {
NSLog(@"%s", __FUNCTION__);
if () {
NSLog(@"用户从快捷方式“搜索”进来的");
} else if () {
NSLog(@"用户从快捷方式“榜单”进来的");
} else if () {
NSLog(@"用户从快捷方式“一键发布”进来的");
}
}
</pre>
</div>
<p> </p>
<p><strong>代码创建快捷方式</strong></p>
<p>快捷方式也支持代码创建,每一个 UIApplicationShortcutItem 就是一个快捷方式,一般在 AppDelegate.m 文件中实现方法 application:didFinishLaunchingWithOptions: 里编写实现代码,代码比较易懂,这里就不再说明了。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:objc;gutter:true;">- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSLog(@"%s", __FUNCTION__);
if (@available(iOS 9.0, *)) {
UIApplicationShortcutIcon *searchIcon = ;
UIApplicationShortcutItem *search = [ initWithType:@"search" localizedTitle:@"搜索" localizedSubtitle:nil icon:searchIcon userInfo:nil];
UIApplicationShortcutIcon *publicIcon = ;
UIApplicationShortcutItem *public = [ initWithType:@"public" localizedTitle:@"一键发布" localizedSubtitle:nil icon:publicIcon userInfo:nil];
UIApplicationShortcutItem *list = [ initWithType:@"list" localizedTitle:@"榜单" localizedSubtitle:@"全区排行" icon:nil userInfo:nil];
application.shortcutItems = @;
}
return YES;
}
</pre>
</div>
<p> </p>
<p>摘自 https://www.jb51.net/article/162263.htm</p>
<p> </p><br><br>
来源:https://www.cnblogs.com/hecanlin/p/16139496.html
頁:
[1]