【问题标题】:WCSession and Today WidgetWCSession 和今日小部件
【发布时间】:2015-08-25 16:21:27
【问题描述】:

我有一个带有今日扩展的应用和一个手表应用。从主应用程序 WCSession 工作正常,数据被传输到手表并正确接收,但是当我尝试通过今天小部件中的 WCSession 发送或接收数据时,会话的属性 pairedwatchAppInstalled 设置为 false 所以调用 transferUserInfo: 什么都不做,并且永远不会调用 session:didReceiveUserInfo:

我知道我可以使用 openURL 打开应用程序,然后发送新数据,但我想在不离开通知中心的情况下这样做。 有谁知道解决这个问题的好方法吗?

【问题讨论】:

    标签: ios watchkit ios8-today-widget watchos-2 today-extension


    【解决方案1】:

    WCsession 似乎只适用于 iOS 应用程序,而不适用于任何 iOS 扩展(共享、今日、键盘等),所以现在如果你想获得它,你必须通过应用程序“中继”东西到手表。

    您应该向 Apple 提交增强错误报告,解释为什么您认为应该可以从扩展中使用它!

    【讨论】:

    • 完成了,我会在收到回复时发布更新
    • 如果有细心的 Apple 工程师路过,雷达编号是多少?
    • 他们给了我#22434298
    • 更新:我的错误报告已被标记为与#22302522 重复,将被关闭
    【解决方案2】:

    如果手表应用在前台运行,您应该能够通过 Darwin 通知向其发送消息。看看MMWormhole

    【讨论】:

    • 感谢您的建议,我会研究一下。
    • 假设我打开了今天的小部件和手表应用程序但没有打开应用程序,如果手表使用 sendMessage 向应用程序发送直接消息:应用程序应该在后台打开,允许它接收userInfo 并通过虫洞通知小部件。这行得通吗?
    • 我会使用openParentApplication:reply 来通知应用程序。然后你可以使用 MMWormhole 来通知今天的扩展。
    • 由于应用程序针对 watchOS 2 openParentApplication:reply: 不可用,但 WCSession 的 sendMessage:replyHandler:errorHandler: 方法执行相同的工作。您对如何从通知中心唤醒应用有任何想法吗?
    • 除了使用openURL启动它之外,没有办法直接从今天的小部件中唤醒应用程序
    猜你喜欢
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多