0

一位用户通过网站界面管理移动用户。通过单击该网站上的按钮,我必须显示所选移动用户的当前位置。所以我需要做的是向移动应用程序发送一些东西,以触发将 GPS 位置发送到我的服务器。然后我的网站开始轮询数据库,每 10 秒检查一次 GPS 坐标是否已到达。

问题:

  1. 是否可以为此目的使用推送通知?我已经实现了它,所以一切都会在那里。
  2. 我可以静默执行此操作,以免移动用户收到通知吗?我发现了一个叫做 Silent Push Notifications 的东西——这就是我要找的东西吗?

我必须在 Android 和 iOS 上执行此操作。

4

2 回答 2

2

在 Android 上,这绝对是可能的。没有默认行为(例如警报/徽章/声音)来通知应用程序的用户他们收到了通知。当应用程序收到推送通知时,会创建一个广播接收器并onReceive执行其方法。您可以在该方法中拥有所需的任何逻辑,但如果您需要需要长时间执行的逻辑(例如服务器调用),您应该从接收器启动意图服务并在服务中执行逻辑(获取设备的位置并将其发送到您的服务器)。

在 iOS 上,我相信从 iOS7 开始就有可能。在 iOS7 之前,处理推送通知的应用程序逻辑只会在用户点击通知/警报打开应用程序后触发。iOS7 使应用程序能够根据到达的推送通知进行后台处理。我相信您应该{"aps":{"content-available"=1}}在这种情况下使用有效负载(用于background content downloads),因为您不希望将任何有效负载显示给用户。

于 2013-09-29T18:31:26.557 回答
1

对于 android 你有一些方法来实现推送服务:

  1. GCM - http://developer.android.com/google/gcm/index.html
  2. MQTT - http://mqtt.org/
  3. 实现自己的持久连接。

他们都有自己的优势。如果您需要确认移动客户端收到了 msg,您应该使用 MQTT。它也比 GCM 更快,因为开销较小,而且您之间没有 GCM 服务器。另一方面,GCM 很容易实现,您不必担心来自服务器的持久 TCP 连接。

也可以使用静默方式,因为您每次只需触发一项服务。因此,如果您不想要通知,则用户不会收到通知。

我不确定iOS。对于 iOS6,不可能实现您自己的服务,这是“唤醒”您的应用程序所必需的。我不确定iOS7。所以对于 iOS6 你肯定需要使用 Apple 的推送服务器。

于 2013-09-29T18:45:41.617 回答