问题标签 [widgetkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
791 浏览

ios - iOS 14 小部件可用内存

在互联网上搜索我发现在旧版本的小部件中存在以下内存限制:

适当地响应用户交互。表现良好(特别是,iOS 小部件必须明智地使用内存,否则系统可能会终止它们)。” 小部件的内存限制为 16 MB,因此请保持简单,并确保测试您的小部件是否存在内存泄漏

我想了解iOS 14可能使用的内存的新版本是否相同或已更改。

我在文档中找不到任何内容。

我想在 中编写一个小部件Swift ui,但首先我想了解是否有任何限制。

谁能给我一些澄清?

0 投票
3 回答
1116 浏览

swift - WidgetKit getCurrentConfigurations 返回错误的小部件配置列表

我添加了带有配置意图的小部件扩展。出于记录目的,我尝试记录应用程序用户拥有的小部件数量

令我惊讶的是,我得到的不是活动的 [WidgetInfo],而是所有小部件中使用过的所有配置意图的完整列表,而不是实际的。

即我在屏幕上有 2 个小部件,而WidgetCenter声称我有 9 个当前配置。任何更好的想法如何计算小部件?

在此处输入图像描述

iOS 14 Beta 8(iPhone 和模拟器)和 Xcode 12 Beta 6

0 投票
2 回答
8453 浏览

swift - 在 iOS 14 的 SwiftUI 中,在主 App 和 Widget 之间共享数据

如何从我的主应用程序获取数据到小部件?

0 投票
1 回答
5559 浏览

swift - 从 CoreData for iOS 14 小部件中获取数据

我想在小部件中显示从 Core Data 获取的数据。但@FetchRequest不适用于小部件。

据我了解,我们必须创建一个应用程序组并制作一个共享的持久容器。

我想知道的是如何从该共享持久容器中读取(获取)小部件上的数据,或者简单地说,如何在小部件中显示从核心数据获取的数据

0 投票
0 回答
900 浏览

ios - 在 iOS 14 小部件中显示来自 Core Data 的数据的合理方式是什么?

我有一个使用 Core Data + CloudKit 堆栈的应用程序。(核心数据在设备之间同步。)。现在我想在 iOS 14 小部件中显示来自 Core Data 的数据(在 WidgetKit 目标中查看)。

我的目标是让小部件中的数据也是来自核心数据的实际数据:即——用户在设备 A 上更改了记录,稍后在设备 B(带有小部件)上更改以小部件表示。

我该怎么做:

a) 为 main app target 和 widget target 添加 App Group 能力;并在小部件目标中获取核心数据。
b)在主应用程序目标中获取核心数据,保存到文件(plist?,JSON?),然后在小部件中使用该文件。
c) 在主应用程序目标中获取核心数据,从小部件目标中获取该数据。(可能吗?)

最合理的方法是什么?感谢您的任何建议。

0 投票
1 回答
2146 浏览

swiftui - 如何让我的 SwiftUI 小部件每分钟更新一次?

我编写了一个应用程序,该应用程序有一个类,该类将从在线 JSON 中提取并解析它,然后返回一个字符串(当天的报价)。

我知道它可以正确提取数据,因为它是第一次工作。在小部件库中,它准确地显示了它应该做什么,以及它在主屏幕上的作用。

问题是当我重新启动手机时,它不会将所有数据重新加载到小部件中。

另一个问题是它不会在转到第二天的 5 分钟内刷新报价。(我检查了 API,我知道他们更改了它。我还认为我已将其设置为每分钟检查一次)。

我在此处附上了为您浏览 JSON 的代码:

现在这里是小部件代码。抱歉,我不知道问题出在哪里,所以我在这个问题上附加了很多代码。

感谢任何花时间看这个的人。

0 投票
1 回答
677 浏览

ios - 当 CloudKit 中的核心数据数据发生变化时,如何更新 WidgetKit 时间线条目?

我有一个将 Core Data 与 CloudKit 一起使用的应用程序。更改在设备之间同步。

主要目标具有选中“远程通知”的背景模式功能。主要目标和小部件目标都具有相同的应用程序组,并且都具有 iCloud 功能,服务设置为 CloudKit,并且容器中的相同容器已选中。

为了从小部件访问 Core Data 数据,我使用 CoreDataStack,如本答案所示。在 WidgetKit 文件中,我有一个执行获取请求并返回的函数Int——来自该请求的行数。稍后我在小部件视图中显示该数字。

但是,如果 CloudKit 中的 Core Data 数据发生变化,例如在另一个设备上用户添加或删除记录,那Int可能是不正确的。

当发生此类更改时,如何请求更新 WidgetKit 时间线条目?(如果数据在另一台设备或当前设备上发生更改。)谢谢。

0 投票
1 回答
1453 浏览

swift - CloudKit中的Core Data发生变化时如何调用WidgetCenter.shared.reloadAllTimelines()?

我有一个将 Core Data 与 CloudKit 一起使用的应用程序。更改在设备之间同步。主要目标具有背景模式功能,已检查Remote notifications,iCloud 功能已检查,服务设置为 CloudKit 并检查容器中的正确容器。

我如何在代码中对记录的更改、删除和添加做出反应?WidgetCenter.shared.reloadAllTimelines()当 CloudKit 中的核心数据更改以更新 iOS 14 主屏幕小部件时,我需要调用。

我的目标是让它工作:我在 icloud.developer.apple.com 或其他设备上更改/添加/删除记录,并WidgetCenter.shared.reloadAllTimelines()调用以在小部件中显示正确的数据。应用程序可能在后台或前台。

来自AppDelegate.swift

此外,在输出日志中注意到消息:

CoreData: debug: CoreData+CloudKit: -[NSCloudKitMirroringDelegate remoteStoreDidChange:]_block_invoke(2138): <NSCloudKitMirroringDelegate: 0x281818d00> - 忽略远程更改通知,因为出口商已经赶上了这个事务:64 / 64 - <NSSQLCore: 0x100b09440> (网址:file:///var/mobile/Containers/Data/Application/F83C68DA-7C36-42CC-926D-7C721C679579/Library/Application%20Support/AppTitle.sqlite)

0 投票
1 回答
63 浏览

swift - NSFetchRequest 返回错误的 .count 值

在我使用 SwiftUI 作为界面的应用程序中,我有一个执行操作的按钮:

当我删除应用程序中的行时,我使用moc.delete(book)try? moc.save(). 我看到删除的行不见了,使用 icloud.developer.apple.com 上的界面。例如——如果我从 3 条记录中删除 1 条,我仍然得到 3 条countResult而不是 2 条。感谢任何帮助。

0 投票
1 回答
9351 浏览

swift - 如何刷新 Widget 数据?

我的代码获取两个JSON变量并应在我的小部件上显示它们。小部件保持空白。如果没有小部件,它会向我显示我的应用程序中的所有内容。

我究竟做错了什么?代码中的 API 仅用于测试,因此您也可以检查。我需要更改什么以使其显示在小部件中吗?

我的结构:

获取 JSON:

显示小部件:

networkManager.test应该显示为文本,但正如我所说,它是空白的。