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

Posted

技术标签:

【中文标题】是否可以使用地理位置作为条件发出通知?【英文标题】:Is it possible to make a notification using geolocation as a condition? 【发布时间】:2017-02-15 16:11:42 【问题描述】:

示例: 安排 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 公里半径内。如果是,我会发送,如果不是,我不会发送

【问题讨论】:

你有任何尝试过的例子吗? 我编辑了帖子 【参考方案1】:

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

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

如果用户离开圈子半径,向你的服务器发送一条消息,告诉你“我不在圈子里,不要给我发送推送通知”。您可以决定,服务器端,停止进一步的通知发送。

所以,对于你的情况,我只会使用推送通知。

小缺点:如果用户失去连接并离开圈子,客户端消息将不会发送到服务器,服务器也不会收到警报,因此它会向用户发送通知。无论如何,您可以管理,客户端,避免这种情况。

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

【讨论】:

谢谢你,你澄清了。我会试试这个

以上是关于是否可以使用地理位置作为条件发出通知?的主要内容,如果未能解决你的问题,请参考以下文章

用户同意的 HTML5 地理位置自定义通知

朋友的位置作为通知

使用 Fused Location Provider 查找位置源

使用浏览器应发送到重定向位置的 HTTP 重定向发送信息?

覆盖浏览器地理位置通知

iOS 根据用户的位置显示推送通知