繁体   English   中英

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

[英]How to share data between an iOS app and a macOS app?

我有一个iOS应用程序,可以使用MusicKit API播放音乐。 我想为macOS编写一个与iOS应用通信的伴侣应用。

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

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

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

  1. 对于静态数据,例如帐户详细信息和首选项。
  2. 用于实时消息。

我可以通过远程服务器执行所有操作,但是我想知道是否有更好的方法。

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

请记住,Apple不保证实时交付或所有远程推送通知的交付。 如果在短时间内发送了许多远程推送通知,则APNS也可能会丢弃它们。 不建议将APNS用于用户启动的操作,例如音乐曲目控制,因为用户期望得到(立即)结果。 应该使用服务器和客户端之间的Web套接字或其他永久连接。

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

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

同步用户首选项:

  1. 将首选项存储在服务器上以进行每次更改。
  2. 在每次启动应用程序时从服务器发出请求首选项,或者在首选项发生更改时动态变化,方法是通过服务器通过远程推送通知或通过Web套接字连接触发请求,具体取决于同步的实时程度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM