INSendPaymentIntent после завершения ручки Откройте приложение - SiriKit Intents - PullRequest
0 голосов
/ 14 декабря 2018

Как открыть мое приложение для определенной страницы из Intents?

Добавление: метод AppDelegate не вызывается:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {

Следующий код, который я использовал в дескрипторе:

 let bundle = Bundle(for: SendPaymentIntentHandler.self)
        let bundleIdentifier = bundle.object(forInfoDictionaryKey: "CFBundleIdentifier") as? String ?? "com.XXX.XXXX"
        print("BundleIdentifier \(bundleIdentifier)")

        let userActivity = NSUserActivity(activityType: String(describing: INSendMessageIntent.self))
        userActivity.userInfo = [NSString(string: "success"):NSString(string: "openTPage")]
        let response = INSendPaymentIntentResponse(code: .success, userActivity: userActivity)
        let paymentRecord = INPaymentRecord(payee: payee, payer: nil, currencyAmount: currencyAmount, paymentMethod: nil, note: intent.note, status: .pending)
        response.paymentRecord = paymentRecord

        completion(response)

Но я получаю следующий статус через консоль, и мое приложение не открывается:

enter image description here

enter image description here

1 Ответ

0 голосов
/ 15 декабря 2018

ХОРОШО.ПОДЕЛИТЬСЯ ЗДЕСЬ ДЛЯ БЫСТРОЙ ССЫЛКИ

После того, как я ударился головой в течение 2-3 дней, я пришел к такому выводу, дайте мне знать, если кто-то знает иначе.

Во-первых: Словарь доступен только для ярлыков ине напрямую общается с Siri через Intents.

Ссылка: Настроенное намерение не работает с SiriKit

В настоящее время настраиваемые намерения предназначены для создания ярлыков Siri, ине для специальных разговорных запросов.Вы можете говорить с Siri только о своем приложении через документированные домены SiriKit.Я надеюсь, что больше интерактивности через пользовательские намерения является частью дорожной карты технологии Siri, но это не в iOS 12.

Во-вторых: у нас нет много вариантов, чтобы открыть наше приложение или Deeplinkчерез Сири.Доступны следующие варианты: continueInApp и failureRequiringAppLaunch через код ответа в определенных кодах ответа Intents (например, INStartWorkoutIntentResponse ) и не все (например: INSendPaymentIntentResponse )

Ссылка: https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application?language=objc

Intents может запускать ваше приложение при следующих обстоятельствах: Некоторые намерения всегда запускают приложение после успешной обработки намерения (например, намерения с кодом ответа continueInApp).Методы обработки и подтверждения вашего намерения запускают приложение, когда вы разрешаете намерение с помощью кода ответа failRequiringAppLaunch (или аналогичного).Пользователь всегда может решить запустить приложение в любой момент транзакции Siri.

Пожалуйста, обновите, если у кого-то есть информация со ссылками.

Спасибо

...