ios - 如何从通知响应中重新加载 iOS 14 小部件的时间线?
问题描述
我正在使用新的 WidgetKit 为 iOS 14 制作主屏幕小部件,并且我希望我的小部件时间线在用户响应通知时刷新。
这是我的代码目前的样子:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
if response.actionIdentifier == "actionIdentifier" {
print("notification response received")
WidgetCenter.shared.reloadAllTimelines()
}
completionHandler()
}
但是当用户响应通知时,我的小部件没有更新。打印语句被打印,所以我知道我的应用程序正在接收响应。当我reloadAllTimeLines()
在我的应用程序中调用其他任何地方时,小部件也会刷新,因此我确信我的小部件扩展已正确实现。但在上述情况下它没有更新。
这是一个错误还是我做错了什么?或者是否有另一种方法可以在用户响应通知后重新加载小部件时间线。
解决方案
这似乎在 iOS 14 beta 2 中得到修复。当从通知响应中调用 refreshAllTimelines() 时,小部件现在可以正确更新。
推荐阅读
- php - 在 WooCommerce 的感谢页面上从 $order 获取数据
- c# - 错误 CS1056:意外字符“?”
- java - 获取异步任务的返回
- assembly - 对齐,模数;“因此,它可以在每个函数入口处依赖 ESP = 12 模 16。”
- sql - SQL:根据出生日期计算一个人在某个日期的年龄
- r - R - 抓取时出错:无法访问 Chrome
- css - 使用类为导入添加前缀以进行主题化不起作用
- javascript - TinyMCE 未在 Ajax 调用以填充的页面的正确元素/部分中呈现
- highcharts - 在我的网页上使用 htmltocanvas,但 highcharts 是部分的
- protractor - 上次测试运行的量角器/摩卡测试结果的位置