首页 > 解决方案 > INImage 或 INImageNoteContent 有问题吗?

问题描述

在使用 SiriKit 的 Notes & Lists 域时,我已经能够使用 来创建INNote响应INTextNoteContent,因此意图和响应原则上是有效的。

要使用图像响应,请使用以下代码:

let image: UIImage? = ...grabbing valid image from app's user data

if let image = image,
    let data = UIImagePNGRepresentation(image) {
    let imageNote = INImageNoteContent(image: INImage(imageData: data))
    ...append to [INNote], etc...
}

属性似乎有数据,但意图没有处理(Siri 说,“您可能会在 MyApp 中找到该信息”),而它仅显示带有文本内容的正确数据。关于我搞砸了哪一部分的任何想法?有没有人成功过INImageNoteContent

谢谢!

编辑:通过进一步的实验,确认INImage(named: "some image name")与. 然后试了INNoteINImageNoteContentINImage(imageData: Data)

if let image = UIImage(named: "some image name"),
    let data = UIImagePNGRepresentation(image) {
    let imageNote = INImageNoteContent(image: INImage(imageData: data))
    ...append to [INNote], etc...
}

if let image = UIImage(named: "some image name"),
    let data = image.cgImage?.dataProvider?.data as Data? {
    let imageNote = INImageNoteContent(image: INImage(imageData: data))
    ...append to [INNote], etc...
}

并且每个都产生与初始代码相同的结果。INImage(imageData: Data)除了表现不如宣传的那样,还有什么可以得出的结论吗?

编辑:从 iOS 12 开始,无论今天有什么版本,INImage 都能按预期工作。我不需要任何代码更改,所以我猜错误报告工作。

标签: swiftuiimagesirikit

解决方案


这样它就可以被标记为已回答而不是保持打开状态......

let image: UIImage? = ...grabbing valid image from app's user data

if let image = image,
    let data = UIImagePNGRepresentation(image) {
    let imageNote = INImageNoteContent(image: INImage(imageData: data))
    ...append to [INNote], etc...
}

推荐阅读