iOS 14 小部件没有动态更改

Posted

技术标签:

【中文标题】iOS 14 小部件没有动态更改【英文标题】:iOS14 widget didnt change dynamically 【发布时间】:2020-09-28 10:38:57 【问题描述】:

我想更改ios14小部件的背景字体样式

这是我的代码

func getTimeline(in context: Context, completion: @escaping (Timeline<Entry>) -> ()) 
    var entries: [SimpleEntry] = []
    
    //Steps
    let SteGroupName : String = "group.com.ColorWidget.SmartTimeWidget"
    
    let strStyle = UserDefaults.init(suiteName: SteGroupName)?.value(forKey: "NumberOfStyle_APP") as? String ?? "1"
    let strBatteryShowOrNot = UserDefaults.init(suiteName: SteGroupName)?.value(forKey: "isBatteryShow_APP") as? String ?? "YES"

第一次小部件更改完美反映,但在其余时间小部件不会更新为最新更改。

请大家帮忙。

【问题讨论】:

【参考方案1】:

在您的情况下,每当您在包含应用程序中更新您的 App Group UserDefaults 时,您都需要调用

WidgetCenter.shared.reloadAllTimelines() // Or reloadTimelines(ofKind)

在您的包含应用程序端,当它进入后台(或您希望的其他场景)时。

然后小部件扩展将通过调用getTimeline()重新加载时间线。

【讨论】:

以上是关于iOS 14 小部件没有动态更改的主要内容,如果未能解决你的问题,请参考以下文章

iOS 14 小部件的模糊背景

iOS 14 小部件中的动画

iOS 14 小部件没有要启动的 main()

动态更改小部件的文本颤动/飞镖

iOS 14 小部件不刷新

App Store Connect 是不是会跟踪小部件在 iOS 14 上的安装情况?