如何在iOS应用和macOS应用之间共享数据?

时间:2018-05-29 19:24:27

标签: ios macos

我有一个使用MusicKit API播放音乐的iOS应用。我想为macOS编写一个与iOS应用程序通信的配套应用程序。

例如,我的iPhone正在播放音乐。当新曲目开始播放时,macOS应用中会显示通知。我可以点击macOS上的按钮跳到我手机上的下一首曲目。

在这样的设备之间进行通信的最佳方式是什么?

我认为有两个重要的用例:

  1. 适用于帐户详情和偏好等静态数据。
  2. 用于实时消息。
  3. 我可以通过远程服务器完成所有工作,但我想知道是否有更好的方法。

1 个答案:

答案 0 :(得分:1)

用户需要在iOS和macOS上安装您的应用,并且需要单独授予接收推送通知的权限。

请注意,Apple不保证所有远程推送通知的实时投放或投放。如果在短时间内发送了许多远程推送通知,则APNS也可以丢弃远程推送通知。建议不要将APNS用于用户启动的操作,例如音轨控制,因为用户需要(立即)结果。应改为使用服务器与其客户端之间的Web套接字或其他永久连接。

在一台设备上播放音乐,停在另一台设备上:

  1. 请求发送远程推送通知的权限,以获取每个设备的唯一APNS令牌。
  2. 将设备令牌存储在您的服务器上。
  3. 让iOS客户端通知服务器用户开始播放音乐。
  4. 使服务器通过APNS向macOS客户端发送远程推送通知。
  5. 在macOS客户端上处理用户与推送通知的交互,并将用户操作报告回服务器。
  6. 使服务器通过Web套接字连接通知iOS用户交互,而不是远程推送通知,以确保客户端处理用户操作。
  7. 让iOS客户端跳过该曲目。
  8. 同步用户偏好设置:

    1. 为每次更改在服务器上存储首选项。
    2. 在每个应用程序启动时从服务器请求首选项,或者在首选项更改时通过服务器或Web套接字连接通过远程推送通知触发请求来动态地请求首选项,具体取决于同步的实时性。