【发布时间】:2015-08-17 14:06:08
【问题描述】:
我知道不可能...:
- ... 直接从 Watch 安排通知,而不是手表必须将信息传递到 iOS 应用程序,iOS 应用程序将安排通知;
- ...决定在哪里显示通知。 iOS 会替你决定;
考虑到这一点,我正在使用 WCSession::sendMessage 函数发送一个字典,其中包含我的 iOS 应用程序安排通知所需的所有信息。使用模拟器执行此操作时效果很好,但在真实设备上执行此操作时似乎无法正常工作,而且我从未在任何地方收到通知。
知道为什么我的真实设备(iOS9 iPhone 5c + Watch os 2.0 Beta 5)似乎不想安排/触发通知吗?
据我了解,如果 iphone 被锁定,它应该在手表上显示通知,但在我的模拟器上,它似乎总是在 iPhone 上执行,即使它已被锁定。
编辑:
根据建议,我通过 XCode 检查了设备积压,这是我在手表尝试连接到 iPhone 时看到的积压:
Aug 21 11:25:16 glendcs-iPhone apsd[100] <Notice>: (Note ) WatchKit: SPDeviceConnection, createXPCConnection, invalidationHandler
Aug 21 11:25:16 glendcs-iPhone apsd[100] <Notice>: (Error) WatchKit: -[SPDeviceConnection activeComplicationsWithCompletion:] - error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.companionappd was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.companionappd was invalidated from this process.}
Aug 21 11:25:16 glendcs-iPhone companionappd[113] <Notice>: (Error) WatchKit: <SPCompanionAppServer.m -[SPCompanionAppServer listener:shouldAcceptNewConnection:]:763> process 100 is not entitled, so rejecting connection
【问题讨论】:
-
您是否看到您的 iOS 应用程序启动以响应手表上发送的消息?
-
不,但根据the documentation 的说法,如果它必须唤醒它,它会在后台发生,所以我认为我不应该看到它启动?
-
是的,我的意思不是“像用户启动它一样启动”;我的意思是后台启动。您可以通过在 Xcode 中添加日志和监视设备的控制台日志或通过在后台启动之前附加到进程来检查是否发生这种情况(一旦启动了正确名称的进程,Xcode 将等待附加)
-
我试过了,它似乎在它有机会唤醒它之前阻止了连接。我对我的问题@ccjensen 进行了编辑。希望这能让您更好地了解出了什么问题。
标签: ios iphone swift notifications apple-watch