СИРИКИТ не возвращает счет
Я пытаюсь использовать sirikit, чтобы вернуть счет, который я сохранил на firebase. Это не возвращает счет, который он находит. Это моя функция ручки. Я использую функцию getBills для получения моих счетов из базы данных:
func handle(searchForBills intent: INSearchForBillsIntent, completion: @escaping (INSearchForBillsIntentResponse) -> Void) {
var arrayOfBills: [INBillDetails] = []
APIManager.getBills { (success, bills) in
if(success) {
for bill in bills {
if (bill.type == intent.billType.rawValue) {
var nickname: INSpeakableString = INSpeakableString(identifier: bill.billPayeeNickName, spokenPhrase: bill.billPayeeNickName, pronunciationHint: bill.billPayeeNickName)
var organizationalName: INSpeakableString = INSpeakableString(identifier: bill.billPayeeOrganzationalName, spokenPhrase: bill.billPayeeOrganzationalName, pronunciationHint: bill.billPayeeOrganzationalName)
var billPayee: INBillPayee = INBillPayee(nickname: nickname, number: bill.billPayeeAccountNumber, organizationName: organizationalName)!
var nsDecimalTotal: NSDecimalNumber = NSDecimalNumber(string: bill.total)
var amountDueInCurrency: INCurrencyAmount = INCurrencyAmount(amount: nsDecimalTotal, currencyCode: "$")
var dateC: DateComponents = DateComponents(calendar: Calendar.current , timeZone: TimeZone.current, era: 1, year: 2017, month: 5, day: 23, hour: 2, minute: 2, second: 2, nanosecond: 2, weekday: 3, weekdayOrdinal: 3, quarter: 3, weekOfMonth: 23, weekOfYear: 33, yearForWeekOfYear: 44)
var billToReturn = INBillDetails(billType: INBillType(rawValue: bill.type)!, paymentStatus: INPaymentStatus(rawValue: bill.status)!, billPayee: billPayee, amountDue: amountDueInCurrency, minimumDue: amountDueInCurrency, lateFee: amountDueInCurrency, dueDate: dateC, paymentDate: dateC)
arrayOfBills.append(billToReturn!)
}
}
print("success")
var response = INSearchForBillsIntentResponse(code: .failure, userActivity: nil)
//response.bills = arrayOfBills
completion(response)
}
else {
print("failed")
completion(INSearchForBillsIntentResponse(code: .failure, userActivity: nil))
}
}
1 ответ
Ваш INSearchForBillsIntentResponse инициируется с ошибкой в обоих условиях. У вас нет кода успеха - это может привести к тому, что Siri не вернет счет. Вам также необходимо раскомментировать присвоение счетов ответу.
Сначала у меня были некоторые проблемы с функциями Bills, но, похоже, большинство ошибок для этого исправлено в iOS 10.3 beta 4 (хотя интерфейс SearchForBills не так уж и хорош).