我想将日期字符串从ISO 8601格式(由“格式日期”块正确生成)转换回可用日期。我尝试使用“从输入获取日期”,但是不幸的是,这似乎无法正确读取时间部分。
直到“格式日期”的流都会产生字符串2018-09-24T11:33:23+02:00,但是无论运行此快捷方式的时间如何,“从输入获取日期”都将12:00显示为时间。
PS:这是一个简化的示例。实际的日期字符串将来自Web服务,因此我无法控制传入的格式-我需要解析这种日期以继续执行其他尝试做的事情。
我为Siri快捷方式创建了一个简单的意图,每当我试图捐赠意图时,它最终都会出现以下错误.
交互捐赠失败:%@ Error Domain = IntentsErrorDomain Code = 1901"无法捐赠交互{intent = {user =; identifier = 06DE1A38-6D46-4CB8-B825-3788E6A81420;}; dateInterval = <_NSConcreteDateInterval:0x60000043cce0>(开始日期)2018 -07-17 12:38:39 +0000 +(持续时间)0.000000秒=(结束日期)2018-07-17 12:38:39 +0000; intentResponse =; groupIdentifier =; intentHandlingStatus =未指定;标识符= F145FA84-7147 -41A8-8698-681F06C8CEB5; direction =未指定;}意图没有有效的快捷类型"UserInfo = {NSLocalizedDescription =无法捐赠交互{intent = {user =; identifier = 06DE1A38-6D46-4CB8-B825-3788E6A81420; }; dateInterval = <_NSConcreteDateInterval:0x60000043cce0>(Start Date)2018-07-17 12:38:39 +0000 +(Duration)0.000000 seconds =(End Date)2018-07-17 12:38:39 +0000; intentResponse =; groupIdentifier =; intentHandlingStatus =未指定; identifier = F145FA84-7147-41A8-8698-681F06C8CEB5; direction =未指定; }意图没有有效的快捷键类型}
以下是我的意向捐赠代码
func donateInteraction() {
let intent = GetBalanceIntent()
intent.suggestedInvocationPhrase = "Get Balance" …Run Code Online (Sandbox Code Playgroud) 我已经启动并运行了快捷方式,并且我将自定义响应添加到了我的完成处理程序中。在这种情况下...
completion ([TriggerSceneIntentResponse successIntentResponseWithSceneName:intent.sceneName]);
Run Code Online (Sandbox Code Playgroud)
当我让 Siri 运行我的快捷方式时,我成功了,但她只说“完成”或“确定”。我的成功模板是“您的场景名称场景已被激活”。然而,出于某种原因,Siri 从不使用这个模板。
我不确定图片帖子是否在论坛中有效,但我会在这里尝试一下。这是我的自定义意图在意图编辑器中的样子。
这就是 Siri 的回话……
同样,如您所见,她只是在说“完成”。当她应该说“您的洗衣房关闭 101 场景已激活”时。
我已经确认我上面的完成行是通过调试我的意图目标来调用的。我不确定我错过了什么?
假设我正在制作一个应用程序,用户可以在其中安装一些小的交互式体验(冥想)。
\n\n为了方便起见,我希望我的用户能够通过说:\xe2\x80\x9cHey Siri,在冥想中启动海滩日落。\xe2\x80\x9d
\n\n由于某些原因,用户通过语音执行此操作是有意义的,而无需先在 iOS 应用程序中与Beach Sunset进行交互。(例如,他们可能已经通过我的服务的网络应用程序\xe2\x80\x9cown\xe2\x80\x9d它。)
\n\n也就是说:我想要像\xe2\x80\x9cHey Siri,在 Meditations\xe2\x80\x9d 中启动 Beach Sunset 这样的语音动作,即使用户没有先为其设置快捷方式,或者我 \xe2\x80 \x9c为其提供\xe2\x80\x9d 行动。
\n\n那可能吗?(我觉得许多默认应用程序都暴露了类似的行为,但也许它们很特别。)如果没有,我能做的下一个最好的事情是什么?
\n\nSiri 是否需要“捐赠”才能了解我的应用程序的语音操作,或者它们只是一种暗示和预测用户行为的机制?
\n\nSiri 是否需要“快捷方式”来了解我的应用程序的语音操作,或者它们只是一种用户短语自定义机制?
\n\n\n\n\n我从未在 iOS 应用程序中添加过 Siri 支持,但似乎 \xe2\x80\x9cparameters\xe2\x80\x9d 在 iOS 13 中变得更加强大。这个答案表明类似的事情在 iOS 中是不可能的12,但我认为它也在做一些不同的事情(我想启动应用程序;他们想要 \xe2\x80\x9c 创建一个对象 \xe2\x80\x9d 大概只是使用 Intent UI。我不知道这是否重要。)
\n
我已使用单个参数 ( )在“开始”类别 ( ) 中定义了自定义意图。LaunchMeditationmeditationName
我考虑了标准媒体 …
我正在将 siri Shortcuts 添加到我现有的应用程序中。共有三种快捷方式,一种是使用特定值启动应用程序,一种是将值增加一个数量,另一个是将值减少一个数量。用于启动应用程序的快捷代码附在此处:
//
// StartMeetingIntentHandler.swift
//
import Intents
import SwiftUI
class StartMeetingIntentHandler: NSObject, StartMeetingIntentHandling {
@ObservedObject var meeting = Meeting()
func handle(intent: StartMeetingIntent, completion: @escaping (StartMeetingIntentResponse) -> Void) {
if let attendees = intent.attendees {
meeting.meetingStarted()
meeting.addAttendee(numberToAdd: Int(truncating: attendees))
completion(StartMeetingIntentResponse.success(result: attendees))
} else {
print("failure")
}
}
func resolveAttendees(for intent: StartMeetingIntent, with completion: @escaping (StartMeetingAttendeesResolutionResult) -> Void) {
let people = Int(truncating: intent.attendees ?? 0)
if people < 0 {
completion(StartMeetingAttendeesResolutionResult.unsupported(forReason: StartMeetingAttendeesUnsupportedReason.negativeNumbersNotSupported))
} else if people > 1000 …Run Code Online (Sandbox Code Playgroud) I\xe2\x80\x99m 创建一个简单的 AppIntents 快捷方式,需要 UIKit 在我的应用程序中打开 URL。不过,一旦我将 添加import UIKit到我的文件中,Xcode 就会在 处显示以下警告caseDisplayRepresentations,因为我使用图像来显示表示。无需导入 UIKit(或无需 DisplayRepresentations 的图像),一切正常!有什么想法如何解决这个问题吗?
\n\n\n期望直接调用
\nImage初始化程序,但得到Swift.Optional<AppIntents.DisplayRepresentation.Image>了
import AppIntents\nimport UIKit\n\nenum AppView: Int, AppEnum {\n case tab1\n case tab2\n \n static var typeDisplayRepresentation = TypeDisplayRepresentation(name: "View")\n \n static var caseDisplayRepresentations: [AppView : DisplayRepresentation] = [\n .tab1: DisplayRepresentation(title: "Tab 1",\n image: .init(systemName: "1.circle")),\n .tab2: DisplayRepresentation(title: "Tab 2",\n image: .init(systemName: "2.circle"))\n ]\n}\n\n// MARK: - Intent\nstruct OpenAppIntent: AppIntent {\n …Run Code Online (Sandbox Code Playgroud) 我正在创建一个 Siri 快捷方式,并插入了 WWDC 2018 视频之一解释和演示的“添加到 Siri”按钮。我的问题是,我是否可以判断用户何时创建了这个特定的快捷方式,这将使按钮变得无用,甚至是一个允许用户为同一活动/意图创建多个快捷方式的错误。
有没有办法访问用户从我的应用程序创建的快捷方式列表?
我正在尝试在 iOS 上设置 Siri 快捷方式,以便轻松地将 YouTube 视频隔空播放到 Apple TV。作为该过程的一部分,我想选择视频的质量(大概使用 JavaScript),但我在实现这一点时遇到了困难。这是我到目前为止所得到的(可在桌面/非 iOS 设备上查看的 imgur 链接)。它成功地使用 JavaScript 暂停视频,自 YouTube 自动播放以来将其倒回到开头,然后通过 AirPlay 连接到 Apple TV,等待电视打开,然后单击视频将其取消静音。然而,我尝试设置视频质量的所有方法都不起作用,我在这里抓狂了。有人知道这是否可能吗?是不是视频的参数可以设置?或者我可以使用 JavaScript 单击设置按钮并选择质量吗?我的 Javascript 非常弱,所以任何帮助我指明正确方向的帮助都将非常感激。
这是我到目前为止得到的 Javascript:
ytplayer = document.querySelector('video');
ytplayer.pause();
ytplayer.currentTime = 0;
ytplayer.click();
ytplayer.play();
completion();
Run Code Online (Sandbox Code Playgroud) 我一直在尝试在我的 WatchOS 目标上进行设置AppIntents和相应操作AppShortcuts,但它们没有显示在 Watch 的快捷方式应用程序中。
使用相同的设置,它在 iOS 伴侣上运行得很好。文档说AppIntents适用于 WatchOS,所以我肯定忽略了一些东西?不幸的是我在网上找不到与该主题相关的任何内容......
编辑:在硬件上运行相同的版本(iPhone SE:iOS 16.4 + Watch SE:WatchOS 9.4),快捷方式甚至不会出现在 iOS 中,而它们会出现在模拟器中?!
现在,我可以在配套应用程序上实现该功能并中继结果状态,但我更喜欢在 Watch 上执行此操作(试图避免一些不必要的额外工作)。因此,任何帮助将不胜感激。谢谢!
我已经将一个添加Intents.intentdefinition到我的项目中。在其中我添加了一个新的意图,称为OrderItem带有一些参数和参数组合。
当我尝试导入 auto generated 时OrderItemIntent.h,编译器会抛出No newline at end of file编译错误。
不确定解决此问题的正确方法是什么。
sirishortcuts ×10
ios ×7
ios12 ×4
siri ×3
appintents ×2
objective-c ×2
sirikit ×2
swift ×2
ios13 ×1
javascript ×1
parameters ×1
watchos ×1
xcode10 ×1
youtube ×1