是否可以使用地理定位作为条件发出通知?

Is it possible to make a notification using geolocation as a condition?

示例: 安排 15 分钟的通知并保存用户的位置。

如果用户离开radius,则不会发送通知。

是否可以使用 onesignal 或仅使用 cordovaLocalNotification 来做到这一点?

var notificationObj = {
                contents: {
                    en: "asdasdasd"
                },
                include_player_ids: [playerId],
                send_after: "2017-02-15 20:42:00 GMT-0200",
            }

window.plugins.OneSignal.postNotification(notificationObj,
    function(successResponse) {
        console.log("Notification Post Success:", successResponse);
    },
    function (failedResponse) {
        console.log("Notification Post Failed: ", failedResponse);
        alert("Notification Post Failed:\n" + JSON.stringify(failedResponse));
        }
    )
 })

在此之前,我会保存当前位置,在发送时,我会比较该位置是否在 1 公里半径内。有的话我就发 没有我就不发

有两种类型的通知:本地通知和推送通知。 本地通知的工作方式类似于警报(即我想在上午 9 点醒来),它们可以在指定时间在本地保存和启动,无需任何互联网连接。对于这种通知,您可以使用本地通知插件。 第二种情况,推送通知,通过互联网从您的服务器发送(基本上......)到用户应用程序适当的一种通知规则集服务器端。 因此,对于您的具体情况,如果我满足您的需求,您可以:

  1. 获取您的实际位置和时间,将所有这些数据发送到您的服务器
  2. 保存(服务器端)这些数据并设置发送推送通知的时间(15 分钟)
  3. 15 分钟后,没有来自客户端应用程序的信息,发送推送通知。

如果用户离开圆半径,发送消息到你的服务器,告诉"I'm out of the circle, don't send me the push notification"。您可以决定,服务器端,停止进一步的通知发送。

因此,对于您的情况,我将只使用推送通知。

小缺点:如果用户断开连接离开圈子,客户端消息不会发送到服务器,服务器也不会收到通知,所以它会发送通知给用户。无论如何你可以管理,客户端,避免这种情况。

编辑:您还可以使用本地通知作为警报来管理所有内容,并且根本不使用推送通知,如您所愿。我不会同时使用这两个系统。