【问题标题】:IOS & WatchOS background communicationIOS & WatchOS后台通信
【发布时间】:2021-04-03 16:13:08
【问题描述】:

我有一个带有 WatchOS 应用程序的 IOS 应用程序。我想知道是否有一种方法可以在 IOS 应用程序不作为前台应用程序运行时与它进行实时通信。

我能想到的最好的例子是你如何能够使用 Spotify 手表应用来改变歌曲,比如歌曲,甚至在手机被锁定时改变手机的音量。

对于一个可能在手机锁定时频繁从手表向手机发送数据的应用程序,我该如何实现这样的功能。

【问题讨论】:

    标签: swift wcsession


    【解决方案1】:

    手表应用可以通过向它们发送消息来启动它们的配套 iOS 应用:。 https://developer.apple.com/documentation/watchconnectivity/wcsession/1615687-sendmessage

    如果 iOS 设备因为刚刚启动而需要解锁,这将不起作用。

    【讨论】:

    • 感谢您的回答。我不是在寻找如何启动配套应用程序,而是在其中一个应用程序在后台时与配套应用程序实时通信的方法。我的意思是应用程序已经打开,就像 Spotify 示例一样,我锁定了手机,但在手表应用程序上,我可以点赞、跳过或暂停一首歌曲。这种通信是如何立即实现的,而不是作为一些后台任务安排的?
    • sendMessage(_:replyHandler:errorHandler:) 会这样做,这称为交互式消息传递。即使 iOS 应用程序没有运行,它也会启动(进入后台)以处理来自手表的消息,并可选择发送回复。如果它已经在运行,没问题
    • 请注意,这仅适用于一种方式,您无法从手机启动手表应用,除非通过特殊的“开始锻炼”API。因此,在 iPhone 上,只有在手表应用程序已经运行时,您才能以交互方式向其发送消息
    • 有趣的是,我一直认为 sendMessage 需要双方的活动会话!谢谢
    • 要让消息通过,是的,但请确保设置一个委托并在 didFinishLaunchingWithOptions 中调用 WCSession.default 激活。我想如果你不这样做,你会被启动,然后很快你就会再次被暂停?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多