我正在尝试使用sirikit开发应用程序扩展,但是当我尝试在模拟器iphone 7plus上运行它时,它会给出以下错误: -
SpringBoard无法为请求提供服务.
任何人都可以告诉我IOS模拟器是否支持SIRIKit扩展!
我创建了一个自定义Siri意图.它在"快捷方式"应用程序中可见.但是,它允许我仅从捐赠的快捷方式中选择,而无需指定自己的参数.
是否可以使用"快捷方式"应用程序创建支持提供参数的Siri Intent?
我的意图配置
结果如何:
我想要实现的目标
请注意,如何预先填写字段(例如Item
字段).我想有相同的选择phoneNumber
.
我用来(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)
对每个输入的字符进行实时正则表达式验证UITextView
.
这很好用,甚至可以处理可能包含无效字符的粘贴文本.
但是,Siri似乎并不关心这些事情并将其直接转发(void)textViewDidChange:(UITextView *)theTextView
,绕过shouldChangeTextInRange
代表并避免验证检查.
这对我来说似乎是一个安全漏洞,并打破了每个其他输入通道所遵循的API流程.
有关如何让Siri Dictation遵守呼叫的任何想法shouldChangeTextInRange
?
在我的申请中,我只支持欧元和美元货币.因此,当用户尝试使用Siri向GBP发送付款时,我要求他在EUR和USD之间进行选择.
之后在屏幕上我看到:
如果我选择100美元intent.currencyAmount!.currencyCode
我总是有英镑(但用户选择美元).这很奇怪.
这是我的代码:
func resolveCurrencyAmount(forSendPayment intent: INSendPaymentIntent, with completion: @escaping (INCurrencyAmountResolutionResult) -> Void) {
if let currencyAmount = intent.currencyAmount { // need to check if we have proper value
if let amount = currencyAmount.amount {
if amount.doubleValue == 0 { // wrong amount
completion(INCurrencyAmountResolutionResult.unsupported())
return
}
if let currencyCode = currencyAmount.currencyCode {
if let _ = EnumCurrency(rawValue: currencyCode) { // we found currency code that we know
completion(INCurrencyAmountResolutionResult.success(with: INCurrencyAmount(amount: NSDecimalNumber(value: abs(amount.doubleValue)), currencyCode: currencyCode)))
return
} …
Run Code Online (Sandbox Code Playgroud) 我正在尝试为iOS 11实现SiriKit,特别是使用列表和注释.我的AppIntentVocabulary.plist如下所示.
AppName取代了我App的真实姓名.
https://gist.github.com/mitch2be/6e49d5e07e567bbc4d049bc565dad473
每次我提交时,我都会收到来自iTunesConnect的电子邮件,说明:
Siri支持无效 - 示例短语"在AppName中创建新的购物清单".未被归类为INCreateTaskListIntent意图
Siri支持无效 - 示例短语"将mik添加到AppName中的杂货清单".未被归类为INAddTasksIntent意图
对于其他剩余的示例短语,还有更多无效的Siri支持消息.
有没有人知道为什么会这样?是否需要在其他地方实施示例短语?
AppIntentVocabulary.plist具有主应用程序的目标成员身份.我还将它添加到SiriKit扩展并尝试了但是这也没有用.
任何想法或解决方案将是最受欢迎的.
我正在研究iOS上的语音识别,但每次调用方法[_recognitionRequest endAudio]时,它总是在recognitionTaskWithRequest中出错:消息在底部.
-(void) stopRecording {
if (_disableSpeechSW == YES) {
return;
}
if (_isAuthorization == NO) {
return;
}
NSLog(@"stopRecording");
if ([_audioEngine isRunning]) {
[_audioEngine stop];
[_recognitionRequest endAudio];
}
Run Code Online (Sandbox Code Playgroud)
}
-(void) startRecording {
..........
[_speechRecognizer recognitionTaskWithRequest:_recognitionRequest
resultHandler:^(SFSpeechRecognitionResult *result,NSError *error){
if (error != nil ) {
NSLog(@"%@",[error description]);
}
else {
..........
}
}];}
Run Code Online (Sandbox Code Playgroud)
[实用程序] + [AFAggregator logDictationFailedWithError:]错误域= kAFAssistantErrorDomain代码= 203"重试"UserInfo = {NSLocalizedDescription =重试,NSUnderlyingError = 0x17424c690 {错误域= SiriSpeechErrorDomain代码= 1"(null)"}}
这个问题与新的iOS 12功能有关:Siri Shortcuts.用户可以使用Siri快捷方式通过自定义语音短语或新的iOS 12"快捷方式"应用程序触发应用程序特定功能(由开发人员创建).快捷方式应用程序允许您通过组合应用程序的快捷方式来创建工作流程,类似于Mac上的Automator应用程序.
在我们的应用程序中,我们实现了特定功能的快捷方式 这意味着用户可以通过语音或快捷方式应用程序触发此快捷方式来执行此功能.我们的快捷方式在iOS的快捷方式应用程序中通过向Siri捐赠我们的意图来"自动".
问题是,如何自定义此快捷方式?默认情况下,我们的快捷方式如下所示:
如您所见,快捷方式仅显示标签传输"X"到"X",并且不允许您配置此快捷方式.当我将我的快捷方式与其他应用程序的其他快捷方式进行比较时,我发现这些快捷方式是可配置的,就像来自应用程序"Giphy"的快捷方式:
此快捷方式允许您配置"搜索","显示GIF选择器"和"选择多个".还要注意屏幕底部的变量,例如Ask When Run变量.
我找不到有关如何配置快捷方式的任何文档.在Apple(SoupChef)的示例代码中,它们也不提供可配置的快捷方式.
我读了很多新闻稿声称Apple会在iOS上提供Siri的API,但是现在Siri已经发布了,我在developer.apple.com上找不到任何关于这个API的文档.
任何人都可以帮我提供一个示例代码,用于在Apple Watchkit应用程序中添加Speech to Text转换功能.
我希望能够通过 Siri 说“使用 Next 应用程序呼叫 Emily”来触发 VoIP 呼叫,而无需添加快捷方式。
Emily 是我添加到我的联系人中的联系人,其中包含我自己的电话号码。我在日常司机手机上测试了示例应用程序,因此它有一张用于通话的 SIM 卡。
我在你的通讯录中没有看到“Emily”。
我没有看到这样的应用程序。您需要下载一个。搜索应用商店
请注意,如果您在更改显示名称时遇到问题。选择项目,更改显示名称,然后单击项目之外的位置(任何文件)并再次选择项目。运行应用程序,名称应该会更新。
这是代码。如果我的显示名称是下一个,它适用于“使用下一个应用程序呼叫艾米丽”。如果我的显示名称是 Dog,它也适用于“使用 Dog 应用程序呼叫 Emily”。
该示例应用程序是用 SwiftUI 代码编写的,只需进行最少的设置即可测试 Siri 功能。
TestSiriSimple -> TestSiriSimpleIntents -> IntentHandler:
import Intents
class IntentHandler: INExtension {
override func handler(for intent: …
Run Code Online (Sandbox Code Playgroud)