已实现的iOS AppIntent未显示在快捷方式中

w8rqjzmb  于 2023-01-14  发布在  iOS
关注(0)|答案(2)|浏览(249)

我正在尝试测试新的AppIntents API,它目前在iOS16 Beta上。查看文档,实现似乎非常简单,但实现后,我在快捷方式应用中看不到我的AppIntent。设备运行的是iOS 16.0。
这是我实现AppIntent的方式:

import AppIntents

struct DoSomethingIntent: AppIntent {
    
    static var title: LocalizedStringResource = "This will do something"
    
    static var description = IntentDescription("Does something")
    
    func perform() async throws -> some PerformResult {
        return .finished(value: "Done")
    }
}

根据文档,Shortcuts应用应该能够在我的应用安装后找到AppIntent,但我发现事实并非如此。有人知道我的实现缺少了什么吗?

wfsdck30

wfsdck301#

AppIntents API有点新,行为奇怪,文档也很差。
在我的例子中,我可以通过在短语中添加\(.applicationName)参数来使它们工作。

struct LibraryAppShorcuts: AppShortcutsProvider {
    @AppShortcutsBuilder static var appShortcuts: [AppShortcut] {
        AppShortcut(intent: DoSomethingIntent(), phrases: ["Do something with \(.applicationName)"])
    }
}
v8wbuo2f

v8wbuo2f2#

  • 首先,您需要通过xcode-select选择Xcode-beta.app
  • 清理派生数据
  • 关闭您的应用程序和快捷方式应用程序
  • 在代码中添加快捷方式库
struct LibraryAppShorcuts: AppShortcutsProvider {
    @AppShortcutsBuilder static var appShortcuts: [AppShortcut] {
        AppShortcut(intent: DoSomethingIntent(), phrases: ["My something phrase"])
    }
}
  • 构建

相关问题