【问题标题】:HealthKit & Today Extensions/WidgetsHealthKit 和今日扩展/小部件
【发布时间】:2014-10-15 15:12:12
【问题描述】:

有没有人在 iOS8 中结合了这两个新功能?我正在尝试从小部件访问 HealthKit。但由于应用程序和扩展程序使用两个单独的 App ID - 小部件会自动拒绝对 HealthKit 的访问。通知中心/今天视图不显示任何允许访问的提示。我注意到它尝试这样做是因为我在控制台中看到“不平衡的视图控制器转换”警告,但没有显示任何内容。

对于手动修复 - Health 应用将显示具有可手动更改权限的捆绑 ID。但是,没有应用程序图标,并且扩展程序被列为其捆绑 ID,而不是其产品名称。这让我觉得这仍然是他们在测试版中的工作。

【问题讨论】:

  • 如果您有 Skype,请联系我,我正在处理相同类型的事情,我们可以想出一个解决方法。也许 beta 6 有一个修复,但我们没有那个 sdk :/
  • 当然,我想听听你的解决方法 - 你的 Skype 是什么?
  • 与我的 SO 用户名相同。我还没有找到解决方法,但正在研究它:p

标签: ios xcode ios8 ios-app-extension


【解决方案1】:

您可以尝试从包含的应用程序访问 HealthKit 数据,然后通过应用程序组与您的扩展程序共享这些数据。

我还没有看过 HealthKit,但在另一种情况下,App Group 功能对我来说很好用。

【讨论】:

  • 是的,这完全有可能,但不是很有用,因为您必须打开应用程序才能更新今日视图。
  • 如果应用程序从今天的视图小部件启动一次怎么办。然后它可以与(包含)应用程序通信数据,直到它因任何原因退出,例如重新启动。
【解决方案2】:

我还没有尝试在我的应用中对这些功能进行这种组合,但是在集成 HealthKit 功能时,我碰巧在 HealthKit 文档中看到了以下内容:

HealthKit 和 Health 应用程序在 iPad 上均不可用。 HealthKit 框架不能在应用扩展中使用

所以我认为直接的方式不可用...您可以在此处阅读更多信息:HealthKit_Framework Documentation

【讨论】:

  • 是的......他们终于有时间发布该文档 =)
  • 好吧,迟到总比永远好 ^_^
【解决方案3】:

您将无法访问 HealthKit。引用Apple's App Extension Programming Guide:

某些 API 不适用于应用扩展

由于其在系统中的主要作用,应用扩展程序没有资格参与某些活动。应用扩展不能:……

将头文件中标记的任何 API 与 NS_EXTENSION_UNAVAILABLE 宏或类似的不可用宏或不可用框架中的任何 API 一起使用

例如,在 iOS 8.0 中,HealthKit 框架和 EventKit UI 框架不适用于应用扩展。

[强调添加。]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    相关资源
    最近更新 更多