问题标签 [ios8-today-widget]

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 投票
0 回答
223 浏览

ios - 在支持 iOS7 的同时在应用程序和扩展程序之间共享大型资产

在其基本级别上,我的应用程序可以被描述为大型(61M)只读 sqlite 数据库的查看器。我正在开发一个今天的扩展,它需要访问这个数据库,但我正在努力寻找一种方法来共享这些数据。

这些是我所知道的选项,它们存在阻止我使用它们的问题:

  • 在启动时将数据包中的数据复制到应用程序组 - 这使我的应用程序的存储需求增加了一倍。
  • 不要将数据库存储在应用程序包中并下载它 - 这会造成糟糕的首次启动体验
  • 创建一个框架并将其存储在框架中 - 这使我无法支持 iOS7

是否有解决这些问题的方法或方法?

0 投票
1 回答
1256 浏览

ios - 使用 Core Data + iCloud 同步时在应用程序和 Today 小部件之间共享数据的正确方法

我有一个带有 Today 小部件扩展的应用程序。我需要应用程序、小部件以及其他设备上的应用程序和小部件的其他实例来共享数据,因此我正在使用 iCloud Core Data 集成。起初,我让应用程序和小部件(在单个设备中)在共享容器目录中共享同一个 Core Data 存储(sqlite)。现在我启用了 iCloud 同步,这在设备之间工作,但现在我在同一设备上的应用程序和小部件之间显示不一致的数据 (?!?)。问题可能与我的小部件 GUI 更新周期或通知中心订阅有关,我仍在进行故障排除,但在我这样做时:

当您使用 Core Data + iCloud 时,在同一设备上的应用程序和小部件(或我想是两个应用程序)之间共享来自 Core Data 的数据的“正确”解决方案是什么?他们应该共享一个实体店,还是应该各自拥有自己的商店?如果两种方法都有效,是否有任何问题?

0 投票
1 回答
334 浏览

ios - 在哪里只更新一次通知小部件的 UI

在我的今日通知中心扩展/小部件中,每次激活通知中心时,我都需要更新部分 UI。在使用通知中心时,它永远不需要更新,也不需要在后台更新。我应该以什么方法放置该代码?

viewDidLoad并且viewWillAppear在每次显示时都会被调用,例如,如果您向上和向下滚动它们将再次被调用,所以这太频繁了。

widgetPerformUpdateWithCompletionHandler在第一次显示之前根本不会调用它(至少在 iOS 8.2 测试版中),并且只要 iOS 感觉更新 UI 时,就会自动调用此方法,即使它在后台也不合适。

loadView仅被调用一次,除非从内存中删除小部件,否则永远不会再次调用。因此,如果您打开通知中心并查看小部件,然后关闭通知中心并稍后重新打开它,它可能不会再次调用该方法,具体取决于它是否已从内存中清除。

0 投票
1 回答
178 浏览

ios - 我无法满足今天 IOS 8 扩展中的限制

我几乎放弃了在今天的扩展中解决自动布局问题:-(。

我的 iOS 8 应用程序有一个简单的 Today 扩展,我想在其中显示一张二次照片和两个文本标签。

谢谢你的帮助。

在此处输入图像描述

这是我的实际布局。该视图在模拟器和我的真实 iPhone 上几乎显示正确,但我无法消除自动布局错误消息。

将尝试通过打破约束来恢复

0 投票
2 回答
819 浏览

ios - 今日视图扩展上未显示图像视图

我正在尝试在今天的视图扩展中显示图像视图,但它没有出现。任何想法我做错了什么? 在此处输入图像描述 在此处输入图像描述

0 投票
3 回答
2292 浏览

ios - 从通知小部件查明设备是否已锁定

我想知道当我加载我的通知/今天小部件时设备是否被锁定,所以我可以适当地显示小部件。(这是财务问题,我们不想在锁定的手机上显示余额)

在带有 TouchID 的设备上,我可以尝试访问钥匙串,如果我得到

errSecInteractionNotAllowed

回来,它被锁定了。都好。这不适用于没有 touchID(但有 PIN)的设备。我发现了一些东西,建议使用

[[UIApplication sharedApplication] protectedDataAvailable]

但是我没有[UIApplication sharedApplication]小部件。

任何想法在哪里以及如何做到这一点?我只需要一个是/否:设备是否被锁定。

谢谢

[更新:这是我的代码]

获取文件名:

编写/创建文件(在应用程序中,而不是扩展名:

阅读:

它始终能够读取文件,即使在屏幕锁定的 TouchID 设备上也是如此。如果我查看属性,它显示 NSFileProtectionKey 设置为 NSFileProtectionComplete ...但我仍然可以阅读它:(

更新:找到了。将 Ian 的答案标记为正确

0 投票
1 回答
1606 浏览

ios - 从今天扩展程序打开时 iOS 应用程序崩溃

从今天的扩展中打开包含应用程序时可能出现崩溃的重复。

我正在尝试使用自定义 URL 方案从今天的扩展小部件打开包含的应用程序。我在扩展中使用的代码是:

但是,包含的应用程序在打开时会崩溃:

从其他任何地方打开时,相同的自定义 URL 方案都在工作。

使用 Xcode 6.1.1,部署目标 8.1。

0 投票
1 回答
478 浏览

ios - 确保“今日”扩展已更新来自核心数据的信息

我有一个应用程序和一个 Today 扩展,它们使用安全组标识符共享一个 Core Data 持久存储。

主应用更新 Core Data 存储,扩展只从存储中读取。

我正在使用一个NSFetchedResultsController在应用程序和扩展程序中都使用 a 来检索对象。

这基本上是有效的,除了当主应用程序将新对象添加到商店时,它们不会立即对扩展程序可见。同样,扩展程序在被主应用程序删除后仍然可以看到对象。

终止应用程序(从任务切换器向上滑动)会使扩展程序立即看到更改的数据。

如何确保扩展始终看到更新?

0 投票
3 回答
19053 浏览

xcode - “此应用包含带有非法捆绑标识符的应用扩展”问题

我有点搞混了,因为我更改了应用程序名称、Bundle Display 名称和 Bundle 标识符名称......现在我的应用程序可以正常工作,但我的 Today 小部件不会。

每当我尝试运行今天的小部件时,它都会成功构建,但它没有启动,而是说

此应用包含带有非法捆绑标识符的应用扩展。应用程序扩展包标识符必须有一个前缀,该前缀由包含应用程序的包标识符后跟一个“.”组成。

但是,我检查了 Info.plist 并且我的包标识符是

com.myname.myappname

我今天的小部件的捆绑标识符是

com.myname.myappname.mywidget

这不是刚刚好??我一次又一次地清理和建造……但它就是行不通。

没有谷歌结果!我是唯一有这个问题的人吗??

如果是问题所在,我的包名称不是“myappname”。

任何帮助表示赞赏。

东西坏了,我不知道去哪里找!

0 投票
2 回答
4430 浏览

ios - 是否可以在今日小部件中刷新计时器?

我想知道是否可以在今天的小部件中更新计时器的文本标签。我环顾四周,但没有任何帮助。