1.按如下步骤创建
创建Intent文件,命名为MyIntent
接着创建Intent,这个命名无所谓,不是必须一致
创建完成如图
接着创建IntentWeidget,也就是子target
创建完成如图
我们回到最早创建的MyIntent文件,添加对IntentWeidget的支持
如果不出意外的话这时候运行Demo就能在快捷指令里看到了。 如果运行报错,看看info.plist文件里是否自动添加了相关信息,没有的话就手动补充上去,记得主工程和子taget都要检查
2.自定义快捷键样式
我们可以在创建好的intent手动调整样式,,如果想要更灵活的话也可以转成代码调整。 (ps:查资料这时候编译一下应该就会自动生成有对应的代码文件可以编辑,但我实际操作下来并没有,可以用以下方法手动生成代码文件)
生成的代码文件(图中是Intent),可以调整标题、样式等等
struct Intent: AppIntent {
static let title: LocalizedStringResource = "开始播放视频"
static var openAppWhenRun: Bool = true //打开APP
func perform() async throws -> some IntentResult & ProvidesDialog {
return .result(dialog: "好的,马上开始播放")
}
}
struct IntentShortcuts: AppShortcutsProvider {
static var appShortcuts: [AppShortcut] {
AppShortcut(
intent: Intent(),
phrases: [
"\(.applicationName) 测试", //.applicationName必须要有
],
shortTitle: "测试", // 快捷指令的标题
systemImageName: "plus.app" // 系统图标
)
}
}
AppIntent 在实现快捷指令时需要根据需求实现以下方法:
-
title(必须实现) :快捷指令名称_
-
description(可选) :快捷指令描述_
-
openAppWhenRun(可选) :执行快捷指令时打开App
-
perform(必须实现) :业务逻辑处理
这时候的效果:
更多效果请参照iOS快捷功能