标签: sirikit

iOS 10 Siri支持自定义词汇表的锻炼

在我的应用程序中,我希望能够告诉Siri:

所以我启用了Siri功能,添加了一个目标,实现了INStartWorkoutIntentHandling(以及其他)委托方法,一切正常.

我现在可以说Start a workout with MyAppName.PERFEKT!

现在我想告诉她类似Start an activity using MyAppName甚至是什么Start a hike using MyAppName.

所以我去了,并添加了AppIntentVocabulary.plist这样的东西: 在此输入图像描述 那里的快速问题......词汇项目标识符...如果工作 - 远足fe应该用于开始,结束,暂停,恢复,取消...标识符是否应该对所有人都相同?

现在我面临三个问题.

1.我可以告诉Siri的Start a hike,它会工作,她会问我,我应该使用哪个应用.我告诉她Start a hike using MyApp,她会告诉我她在Apple Music上找不到它?!?我勒个去?

2.如果我将单词添加Activity到我的词汇表中,她将只打开iOS活动应用程序...永远不会问我是否可能要打开我的应用程序.

3.在提交我得到漏字的警告一样的一拳No example phrase was provided for INStartWorkoutIntent in the "en" language,我也有!要么Sample phrase "Start a Hike using MyAppName" was not classified as a INStartWorkoutIntent intent

如果有人能向我展示一个AppIntentVocabulary.plist与siri和iTunes Connect配合使用的文件的有效样本,我将非常高兴!

ios siri ios10 sirikit intents-extension

6
推荐指数
1
解决办法
1114
查看次数

Siri正在识别我的AppIntentVocabulary.plist中的短语,但它没有使用与这些短语相关联的VocabularyItemIdentifier值

我正在开发一个锻炼应用程序,并希望将SiriKit集成到iOS 10中.我已经知道如何集成SiriKit并让Siri与我们的应用程序一起工作.

我能找到的唯一有用的资源是Apple的官方文档:SiriKit iOS 10

为了让Siri认出我们的自定义词汇,我们必须添加此文件 在此输入图像描述AppIntentVocabulary.plist

但是intent.workoutName.identifier总是返回口头短语而不是VixelItemIdentifier,而不是有氧运动,而不是有氧运动.

是否有人面临此问题或找到任何解决方案?

ios siri ios10 sirikit

6
推荐指数
0
解决办法
1163
查看次数

使用SiriKit发送消息

我已经有了一个消息传递应用程序,我想实现Siri发送消息.我已经添加了Intents扩展和所有内容,我只是在弄清楚如何发送消息时遇到了问题.我曾尝试使用相同的函数发送消息ChatVC,并将其复制并粘贴到IntentHandler.swift文件中,但它给了我一堆编译器错误.是否有某种类型的框架我应该用它来与应用程序进行通信来执行此操作?如果需要该信息,我将使用Firebase作为我的数据库.

更新的代码:
注意,这段代码是我在用户发送普通消息时的发送功能,这就是我复制并粘贴到SiriIntent中的内容...

 func handle(sendMessage intent: INSendMessageIntent, completion: @escaping (INSendMessageIntentResponse) -> Void) {
    // Implement your application logic to send a message here.

    sendMessage()

    let userActivity = NSUserActivity(activityType: NSStringFromClass(INSendMessageIntent.self))
    let response = INSendMessageIntentResponse(code: .success, userActivity: userActivity)
    completion(response)
}

func sendMessage(text: String?, date: Date, picture: UIImage?, location: String?, video: NSURL?, audio: String?) {

    var outgoingMessage: OutgoingMessage?

if let text = text {      

        let encryptedText = EncryptText(chatRoomID: chatRoomId, string: text)

        outgoingMessage = OutgoingMessage(message: encryptedText, senderId: FUser.currentUser()!.objectId, senderName: FUser.currentUser()!.firstname, …
Run Code Online (Sandbox Code Playgroud)

firebase swift sirikit

6
推荐指数
0
解决办法
514
查看次数

Google Assistant和Siri的Flutter集成-语音交互

我想构建一个支持Google Assistant和Siri的应用程序。
如何在Flutter中实现这一目标?
我知道现有的语音支持
但不支持来回语音操作...

谢谢!

siri google-voice-actions flutter sirikit google-assistant-sdk

6
推荐指数
0
解决办法
3126
查看次数

Siri快捷方式:如何为iOS快捷方式的intent参数创建UI?

我正在尝试使用iOS 12中的新iOS快捷方式应用程序创建一个INIntent.我已阅读文档并观看了有关它的Apple 视频.

我已经成功设置了所有内容并且快捷方式运行良好,但是我似乎无法弄清楚如何设置用户可以在设置快捷方式时编辑的可自定义选项.这方面的一个例子是Calendar应用程序的快捷方式是如何设置的:

日历快捷方式设置

请注意Get,Add Filter,Sort by等选项.

我知道我可以在Intents.intentdefeniton文件中向Intent添加参数,但是在通过SiriKit将交互捐赠给iOS系统之前,需要从应用程序本身设置这些参数.

无论我做什么,Intent只显示空,没有选项.

任何帮助表示赞赏!

ios sirikit ios12 sirishortcuts

6
推荐指数
1
解决办法
659
查看次数

你如何使用 SiriKit 自定义意图的确认阶段?

尝试使用 Xcode 10 beta,我创建了一个自定义的 Siri Intent,并且运行良好。我的意图扩展成功接收意图并依次处理它们。

不需要对意图的参数进行任何类型的验证,一旦被触发,它将从网络请求数据。我可以在(void)handle....

我注意到在我自动生成的 Intent 类中,有一个可能的响应代码列表。

typedef NS_ENUM(NSInteger, SMSCheckTeamIntentResponseCode) {
    SMSCheckTeamIntentResponseCodeUnspecified = 0,
    SMSCheckTeamIntentResponseCodeReady,
    SMSCheckTeamIntentResponseCodeContinueInApp,
    SMSCheckTeamIntentResponseCodeInProgress,
    SMSCheckTeamIntentResponseCodeSuccess,
    SMSCheckTeamIntentResponseCodeFailure,
    SMSCheckTeamIntentResponseCodeFailureRequiringAppLaunch,
    SMSCheckTeamIntentResponseCodeSuccessPlayingNow = 100
}
Run Code Online (Sandbox Code Playgroud)

失败、成功和成功(现在播放)响应在我的 Intents 文件中定义。其他的,例如就绪和进行中,不是,但我仍然想告诉 Siri 我的扩展正在使用该(void)confirm...方法“进行中” 。

SMSCheckTeamIntentResponse * const response = [[SMSCheckTeamIntentResponse alloc] initWithCode:SMSCheckTeamIntentResponseCodeInProgress userActivity:nil];
completion(response);
Run Code Online (Sandbox Code Playgroud)

目前,当我在确认方法中调用它时,Siri 说我的应用程序出现问题,并且扩展程序退出。

有谁知道如何成功使用这些响应代码?

ios sirikit

5
推荐指数
0
解决办法
437
查看次数

无法读取INAddTasksIntent中的歧义消除结果

在我的应用程序中,用户可以通过Sirikit将任务添加到列表中(示例Siri意向查询:“在MyApp中,为牛仔裤添加100美元的费用列表”)。如果建议的列表在应用程序中不可用,请消除歧义。

歧义选择的结果不会在resolveTargetTaskList中捕获。

intent.targetTaskList?.title是我在第一次尝试中传递的值。结果,它进入无限循环。

func resolveTargetTaskList(for intent: INAddTasksIntent, with completion: @escaping (INTaskListResolutionResult) -> Void) {  
    guard let title = intent.targetTaskList?.title else {  
        completion(.needsValue())  
        print("no title value")              
    }  
    completeResolveTaskList(listName: intent.targetTaskList!.title, with: completion)  
}  



public func completeResolveTaskList(listName: INSpeakableString, with completion: @escaping (INTaskListResolutionResult) -> Void) {  
    print("completeResolveTaskList")  
    let allLists = getAllLists()  
    for index in 0...(allLists.count - 1) {  
        if allLists[index].spokenPhrase.lowercased() == listName.spokenPhrase.lowercased() {  
            completion(.success(with: taskLists[index]))  
        }  
    }  

    switch allLists.count {  
    case 0:  
        completion(.unsupported())  
    default:  
        completion(.disambiguation(with: taskLists))  
    }  
}  
Run Code Online (Sandbox Code Playgroud)

屏幕截图以供参考:

屏幕截图

请帮我。

ios siri swift sirikit

5
推荐指数
1
解决办法
73
查看次数

Siri 集成与自定义意图面临的问题

我正在尝试将 Siri Shortcuts 集成到我的应用程序中。我正在尝试的概念是通过秘密密码确认获得我的卡的奖励积分。请在下面找到我为此所做的工作。

  1. 在功能中启用 Siri 并添加了 Siri Intent 定义文件。
  2. 添加了名为 say Rewards 的新自定义意图。

  3. 定义了标题。启用确认的字幕和参数(accType,pin)。Pin 将单独发送给用户。

在此处输入图片说明

  1. 然后使用参数“rewardPoints”定义意图响应并定义响应消息。

在此处输入图片说明

  1. 添加了 Siri 意图扩展。
  2. 向项目和意图扩展中的 info.plist 文件添加了自定义意图。

在此处输入图片说明

在此处输入图片说明

  1. 验证并为自定义意图添加了新的处理程序,并定义如下的解析、处理和确认方法。现在,我将随机返回奖励积分。
//
//  RewardsIntentHandler.swift
//  SiriIntentExt
//

import UIKit
import Intents

class RewardsIntentHandler: NSObject, RewardsIntentHandling {

    func resolveAccType(for intent:RewardsIntent, with completion: @escaping ([INStringResolutionResult]) -> Void) {
        guard let accType = intent.accType else {
            completion([INStringResolutionResult.needsValue()])
            return
        }

        completion([INStringResolutionResult.success(with: accType)])
    }

    func resolvePin(for intent:RewardsIntent, with completion: @escaping ([INIntegerResolutionResult]) -> Void) {

        guard let verifyPin = intent.pin else {
            completion([INIntegerResolutionResult.needsValue()]) …
Run Code Online (Sandbox Code Playgroud)

ios siri swift sirikit sirishortcuts

5
推荐指数
1
解决办法
2322
查看次数

未调用 SiriKit 扩展

我正在使用测试应用程序和扩展程序来尝试 SiriKit 驱魔。我的分机根本没有被调用,我不知道为什么。我在另一个应用程序中有一个有效的 SiriKit 扩展,它莫名其妙地停止响应 - 因此这个测试应用程序。

这是我在测试应用程序中设置 SiriKit 所做的工作:

1) 为应用目标添加了 Siri 权限: 在此处输入图片说明

2) 在应用程序的 info.plist 中添加了 Siri 使用说明: 在此处输入图片说明

3)添加了一个新的 Intents 扩展测试目标,并将我想要的 Intent 添加到扩展 info.plist 中: 在此处输入图片说明

4) 连接 IntentHandler 类:

class IntentHandler: INExtension {
override func handler(for intent: INIntent) -> Any {
    print("IntentHandler.handle")
    switch intent {
        case is INAddTasksIntent: return AddIntentHandler()
        default: break
    }
    return self
}
}
Run Code Online (Sandbox Code Playgroud)

5)创建我的处理程序类:

class AddIntentHandler: NSObject, INAddTasksIntentHandling {
func handle(intent: INAddTasksIntent, completion: @escaping (INAddTasksIntentResponse) -> Void) {
    print("AddIntentHandler.handle")
    return completion(INAddTasksIntentResponse(code: .success, userActivity: nil)) …
Run Code Online (Sandbox Code Playgroud)

ios siri swift sirikit

5
推荐指数
1
解决办法
879
查看次数

Sirikit 自定义意图和 iOS 13.4.1 的国际化问题

我在我的 iOS 应用程序中使用 Sirikit 实现了两个自定义意图。当我开发它们时,我的 iphone 中安装了 iOS 13.3,我的一个意图有一个 Siri Dialog 提示,要求输入一个参数的值。所有应用程序都被翻译成英语和西班牙语,并且自定义意图在两种语言中都能很好地工作。

当我将 iphone 更新到 iOS 13.4.1 时,我的自定义意图开始出现以下问题(根据安装/测试/设备,我看到了两个问题):

  • Siri 询问参数值,就好像我不会放置任何带有标准短语“您想要什么值param?”的自定义对话框一样。(或多或少)
  • Siri 以英语而不是西班牙语询问 Siri 对话提示,即使 Intent 和应用程序的其余部分的其余短语和 Siri 响应已正确翻译成西班牙语。唯一不起作用的翻译是 Siri 对话提示。

我觉得这个问题很奇怪也很烦人。我尝试为Intent.intentdefinition: Intent.strings (Base)、重新创建翻译文件Intent.strings (English)Intent.strings (Spanish)我什至尝试重新创建整个自定义意图定义,但我仍然遇到问题。

我还尝试更改手机上的 iOS 语言和 Siri 语言、重新启动、重新安装应用程序、意图等...

这是我的 Sirikit 扩展的 Info.plist:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
<plist version="1.0">  
<dict>  
  <key>CFBundleDevelopmentRegion</key>  
  <string>$(DEVELOPMENT_LANGUAGE)</string>  
  <key>CFBundleDisplayName</key>  
  <string>InventorySearchIntent</string>  
  <key>CFBundleExecutable</key>  
  <string>$(EXECUTABLE_NAME)</string>  
  <key>CFBundleIdentifier</key>  
  <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>  
  <key>CFBundleInfoDictionaryVersion</key>  
  <string>6.0</string>  
  <key>CFBundleName</key>  
  <string>$(PRODUCT_NAME)</string>  
  <key>CFBundlePackageType</key>  
  <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> …
Run Code Online (Sandbox Code Playgroud)

iphone ios siri swift sirikit

5
推荐指数
1
解决办法
893
查看次数