iOS-自界说Intent及ShortCut,能通过快捷指令唤醒APP并跳转到指定页面 ...

打印 上一主题 下一主题

主题 811|帖子 811|积分 2433

1.Xcode->New->File->搜刮Intent


2.在新建的intent文件中中New intent


3.完善资料,内容可自界说




4.创建Extension,file -> new -> target , 选择 Intents Extension 即可


创建完成后,在intents文件中勾选以下target,否则在扩展里,无法访问到前面创建的Intent类

编译程序,Xcode 会自动天生对应的类,我这里的话会天生 LaunchAppIntent 类,下面需要使用

5.完善IntentHandler

引入上述天生的文件,并写入代理,如果之前未勾选target是无法引入的

在代理中写入,以及点击确认按钮后实行的事故

  1. - (void)handleLaunchApp:(LaunchAppIntent *)intent completion:(void (^)(LaunchAppIntentResponse * _Nonnull))completion {
  2.     completion([[LaunchAppIntentResponse alloc] initWithCode:LaunchAppIntentResponseCodeContinueInApp userActivity:nil]);
  3. }
  4. - (void)confirmLaunchApp:(LaunchAppIntent *)intent completion:(void (^)(LaunchAppIntentResponse * _Nonnull))completion {
  5.     NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([LaunchAppIntent class])];
  6.     LaunchAppIntentResponse *response = [[LaunchAppIntentResponse alloc] initWithCode:LaunchAppIntentResponseCodeSuccess userActivity:userActivity];
  7.     completion(response);
  8. }
复制代码
6.在手机快捷指令中可以进行测试,新增快捷指令,搜刮Xcode中设置好的,点击完成


点击创建好的指令,即能实现唤起APP,也可通过Siri唤醒,名字按照上述自行界说

7.实现APP自动跳转到制动页面

在AppDelegate中引入你要跳转的界面和intent,唤醒APP会通过一下方法进行实行,设置好快捷指令后将会自动跳转到你设置好的控制器

  1. - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
  2.     if([userActivity.interaction.intent isKindOfClass:[LaunchAppIntent class]]){
  3.         ViewController *vc = [ViewController new];
  4.         UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
  5.         self.window.rootViewController = nav;
  6.         ViewController2 *secondVC = [[ViewController2 alloc] init];
  7.         [vc.navigationController pushViewController:secondVC animated:YES];
  8.         return YES;
  9.     }
  10.     return NO;
  11. }
复制代码
8.如果想进行多种操作,可以在此处设置Parameters,在Parameters内新增变量


demo在这里

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

去皮卡多

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表