小编Neo*_*xn0的帖子

需要帮助使 iOS 14 Widget 显示来自 REST api 的内容

最初的问题是在 Apple 论坛上,但没有人可以提供帮助。 https://developer.apple.com/forums/thread/654967?answerId=622833022#622833022

我决定问 SO。

问题

我正在开发一个显示来自 REST api 的内容的小部件扩展。它显示更新的以下股票信息。

我的小部件用户界面

Widgets Code-along,第 3 部分:推进时间线对我没有帮助。

调查给我带来了一个虽然“这是 iOS 测试版的错误”:

public func timeline(
    for configuration: ConfigurationIntent,
    with context: Context,
    completion: @escaping (Timeline<Entry>) -> ()
  ) {
    print("Provider.timeline: ")

    var entries: [SimpleEntry] = []

    let currentDate = Date()
    entries.append(SimpleEntry(
      date: Calendar.current.date(byAdding: .second, value: 15, to: currentDate)!,
      configuration: configuration
    ))
    
    let timeline = Timeline(entries: entries, policy: reloadPolicy)

    completion(timeline)
  }
Run Code Online (Sandbox Code Playgroud)

上面的代码Provider.timeline: 在 1 秒内打印14->19 次。


这是我处理网络请求但没有成功的代码:

public func timeline(
    for configuration: ConfigurationIntent,
    with …
Run Code Online (Sandbox Code Playgroud)

widget swift widgetkit swiftui ios14

10
推荐指数
1
解决办法
6973
查看次数

如何获取指标中之前的蜡烛数据?

我正在编写一个指标,需要读取之前的 32 根蜡烛 ohlc 数据才能进行预测。previous 32 candles ohlc data如何在 TradingView > PineScript Editor > Indicator 中获取?

pine-script

5
推荐指数
1
解决办法
2万
查看次数

ios 14 小部件:如何在 UserDefaults 更改后重新加载时间线

我有一个 ios 14 小部件,每 5 分钟刷新一次

let timeline = Timeline(entries: entries, policy: .atEnd)
Run Code Online (Sandbox Code Playgroud)

entries取决于我的 MainApp 上的配置。

我用来UserDefaults在 MainApp 和 Widget 之间共享数据。

@AppStorage("FollowingCatalog", store: UserDefaults(suiteName: "group.vn.f19.com"))
var catalogItemsData: Data = Data()
Run Code Online (Sandbox Code Playgroud)

我已成功根据UserDefaults数据镜像小部件内容。但我的问题是我的小部件仅在 .atEnd 策略之后每 5 分钟刷新一次 UI

这会导致糟糕的用户体验

UserDefaults我的配置更改后如何立即刷新小部件内容?

感谢您的支持。

timeline widget reload ios userdefaults

5
推荐指数
2
解决办法
2498
查看次数

标签 统计

widget ×2

ios ×1

ios14 ×1

pine-script ×1

reload ×1

swift ×1

swiftui ×1

timeline ×1

userdefaults ×1

widgetkit ×1