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

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是无法引入的

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

复制代码
- (void)handleLaunchApp:(LaunchAppIntent *)intent completion:(void (^)(LaunchAppIntentResponse * _Nonnull))completion {
    completion([[LaunchAppIntentResponse alloc] initWithCode:LaunchAppIntentResponseCodeContinueInApp userActivity:nil]);
}

- (void)confirmLaunchApp:(LaunchAppIntent *)intent completion:(void (^)(LaunchAppIntentResponse * _Nonnull))completion {
    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([LaunchAppIntent class])];
    LaunchAppIntentResponse *response = [[LaunchAppIntentResponse alloc] initWithCode:LaunchAppIntentResponseCodeSuccess userActivity:userActivity];
    completion(response);
}

6.在手机快捷指令中可以进行测试,新增快捷指令,搜索Xcode中设置好的,点击完成

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

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

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

复制代码
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
    if([userActivity.interaction.intent isKindOfClass:[LaunchAppIntent class]]){
        ViewController *vc = [ViewController new];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
        self.window.rootViewController = nav;
        ViewController2 *secondVC = [[ViewController2 alloc] init];
        [vc.navigationController pushViewController:secondVC animated:YES];
        return YES;
    }
    return NO;
}

8.如果想进行多种操作,可以在此处设置Parameters,在Parameters内新增变量

demo在这里

相关推荐
天人合一peng6 分钟前
Unity中button 和toggle监听事件函数有无参数
前端·unity·游戏引擎
自可乐9 分钟前
n8n全面学习教程:从入门到精通的自动化工作流引擎实践指南
运维·人工智能·学习·自动化
初级代码游戏20 分钟前
iOS开发 SwiftUI 14:ScrollView 滚动视图
ios·swiftui·swift
深蓝海拓35 分钟前
PySide6从0开始学习的笔记(二十六) 重写Qt窗口对象的事件(QEvent)处理方法
笔记·python·qt·学习·pyqt
方也_arkling1 小时前
别名路径联想提示。@/统一文件路径的配置
前端·javascript
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于web教师继续教育系统的设计与实现为例,包含答辩的问题和答案
前端
web打印社区1 小时前
web-print-pdf:突破浏览器限制,实现专业级Web静默打印
前端·javascript·vue.js·electron·html
RFCEO2 小时前
前端编程 课程十三、:CSS核心基础1:CSS选择器
前端·css·css基础选择器详细教程·css类选择器使用方法·css类选择器命名规范·css后代选择器·精准选中嵌套元素
Amumu121382 小时前
Vuex介绍
前端·javascript·vue.js
We་ct2 小时前
LeetCode 54. 螺旋矩阵:两种解法吃透顺时针遍历逻辑
前端·算法·leetcode·矩阵·typescript