iOS 14 中的 WidgetKit 并且没有 Intent Handler 的数据
WidgetKit in iOS 14 and no data for Intent Handler
我在 iOS 14 上有一个带有小部件的应用程序。在应用程序的第一个 运行 之后,用户可以将小部件添加到主屏幕和 select“编辑小部件”。一切都很好,但可能存在用户未在应用程序中输入任何数据的情况,因此 select 没有任何内容可以显示在小部件中。 iOS 愉快地呈现数据 selection window 只是空的。不是一个非常友好的用户交互。
但我注意到其中一位开发人员确实设法显示了一个警报。知道如何做类似的事情吗?
Link to screen
在您的意图处理程序中,您将 provideXCollection(for intent, with completion)
的某个版本实现为 return 值数组。 completion
回调也可以接受错误?所以提供一个错误,它将显示在该警报中。
func provideObjectCollection(for intent: ConfigurationIntent, with completion: @escaping (INObjectCollection<Object>?, Error?) -> Void) {
let error = NSError(domain: "test", code: 666,
userInfo: [NSLocalizedDescriptionKey : "This is an error."])
completion(nil, error)
}
正如@adocyn 在评论中发现的那样,如果您正在实施此方法的搜索词版本 provideXCollection(for intent, searchTerm, with completion)
那么您将不会看到警报弹出窗口,您会在搜索结果屏幕中看到错误.
我在 iOS 14 上有一个带有小部件的应用程序。在应用程序的第一个 运行 之后,用户可以将小部件添加到主屏幕和 select“编辑小部件”。一切都很好,但可能存在用户未在应用程序中输入任何数据的情况,因此 select 没有任何内容可以显示在小部件中。 iOS 愉快地呈现数据 selection window 只是空的。不是一个非常友好的用户交互。 但我注意到其中一位开发人员确实设法显示了一个警报。知道如何做类似的事情吗?
Link to screen
在您的意图处理程序中,您将 provideXCollection(for intent, with completion)
的某个版本实现为 return 值数组。 completion
回调也可以接受错误?所以提供一个错误,它将显示在该警报中。
func provideObjectCollection(for intent: ConfigurationIntent, with completion: @escaping (INObjectCollection<Object>?, Error?) -> Void) {
let error = NSError(domain: "test", code: 666,
userInfo: [NSLocalizedDescriptionKey : "This is an error."])
completion(nil, error)
}
正如@adocyn 在评论中发现的那样,如果您正在实施此方法的搜索词版本 provideXCollection(for intent, searchTerm, with completion)
那么您将不会看到警报弹出窗口,您会在搜索结果屏幕中看到错误.