key 作用
uiapplicationshortcutitemtype(必需) 唯一标识
uiapplicationshortcutitemtitle(必需) 显示的标题
uiapplicationshortcutitemsubtitle(可选) 显示的副标题
uiapplicationshortcutitemicontype(可选) 使用系统的图标
uiapplicationshortcutitemiconfile(可选) 使用项目的图标
uiapplicationshortcutitemuserinfo(可选) 附加的信息
以下是一个详细的例子,上述的 key 除了 uiapplicationshortcutitemuserinfo 外,其它都实现了。
292443_20210728122703677.png 292443_20210728122703692.jpg.png 292443_20210728122703770.jpg.png
通过在 appdelegate.m 文件中实现 uiapplicationdelegate 的代理方法application:performactionforshortcutitem:completionhandler:,可以得知用户是从哪个快捷方式进来的,具体代码如下。
- (void)application:(uiapplication *)application performactionforshortcutitem:(uiapplicationshortcutitem *)shortcutitem completionhandler:(void (^)(bool))completionhandler api_available(ios(9.0)) {
nslog(@"%s", __function__);
if ([shortcutitem.type isequaltostring:@"search"]) {
nslog(@"用户从快捷方式“搜索”进来的");
} else if ([shortcutitem.type isequaltostring:@"list"]) {
nslog(@"用户从快捷方式“榜单”进来的");
} else if ([shortcutitem.type isequaltostring:@"public"]) {
nslog(@"用户从快捷方式“一键发布”进来的");
}
}
快捷方式也支持代码创建,每一个 uiapplicationshortcutitem 就是一个快捷方式,一般在 appdelegate.m 文件中实现方法 application:didfinishlaunchingwithoptions: 里编写实现代码,代码比较易懂,这里就不再说明了。
- (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions {
nslog(@"%s", __function__);
if (@available(ios 9.0, *)) {
uiapplicationshortcuticon *searchicon = [uiapplicationshortcuticon iconwithtype:uiapplicationshortcuticontypesearch];
uiapplicationshortcutitem *search = [[uiapplicationshortcutitem alloc] initwithtype:@"search" localizedtitle:@"搜索" localizedsubtitle:nil icon:searchicon userinfo:nil];
uiapplicationshortcuticon *publicicon = [uiapplicationshortcuticon iconwithtemplateimagename:@"upload"];
uiapplicationshortcutitem *public = [[uiapplicationshortcutitem alloc] initwithtype:@"public" localizedtitle:@"一键发布" localizedsubtitle:nil icon:publicicon userinfo:nil];
uiapplicationshortcutitem *list = [[uiapplicationshortcutitem alloc] initwithtype:@"list" localizedtitle:@"榜单" localizedsubtitle:@"全区排行" icon:nil userinfo:nil];
application.shortcutitems = @[list, public, search];
}
return yes;
}
网友评论