按国家定向
国家根据设备的 IP 地址确定,每次用户打开您的应用时自动更新。 在细分或 APIfilters 参数中使用 country 数据过滤器。
按位置定向(经度、纬度和半径)
如果您的移动应用收集 GPS 位置并与 OneSignal 共享,SDK 大约每 5 分钟更新一次用户的坐标(基于权限和系统规则)。如果应用被强制停止,在用户再次打开之前无法跟踪位置。位置跟踪设置
跟踪位置需要三个步骤:向您的应用添加位置权限和依赖项
配置应用的原生位置权限并包含所需的依赖项。
- iOS:遵循 Apple 的 Choosing the Location Services Authorization to Request 开发者指南。
- Android:遵循 Google 的 Request location permissions 开发者指南。
启用与 OneSignal 的位置共享
调用 有关所有平台示例,请参阅移动 SDK 参考。
Location.setShared(true) 以允许 SDK 将设备坐标发送到 OneSignal。没有此设置,您的应用将不会向 OneSignal 发送位置数据。向用户请求位置权限
- 使用
location过滤器创建细分(半径定向)。 - 使用创建消息 API 触发消息。

网页推送经纬度跟踪
OneSignal 不收集网页的经纬度数据。但是,您可以使用标签从您的网页应用设置位置,或使用更新用户 API 从您的服务器设置位置。 打标签示例:- 使用浏览器的 Geolocation API 在您的网页应用中请求位置访问。
- 使用 JavaScript 检测用户的坐标。
- 使用标签将这些坐标发送到 OneSignal。
"lat" > 37 AND "lat" < 38 AND "long" > -118 AND "long" < -117
按城市或自定义位置定向
OneSignal 不会原生检测城市或区号。要按城市或自定义位置定向:- 让用户在表单中输入城市或地区。
- 或使用 JavaScript 与反向地理编码(如 Google Maps API)从坐标推断城市。
- 将城市名称作为数据标签发送。
使用 Radar 进行地理围栏
OneSignal 通过 Radar(一个领先的地理位置平台)支持高级地理围栏。使用 Radar 的 SDK 和 API,您可以:- 在用户进入或退出定义区域时触发通知。
- 跟踪配送和取货活动。
- 验证在位置的存在。
- 支持商店定位器、基于位置的优惠等。
常见问题
位置跟踪在网页上有效吗?
OneSignal 不从网页浏览器收集 GPS 坐标。要在网页推送中使用基于位置的细分,请从浏览器的 Geolocation API 收集坐标并将其存储为标签。请参阅上方的网页推送经纬度跟踪。为什么我的应用没有跟踪位置?
验证所有三个设置步骤是否已完成:位置权限和依赖项已添加到您的应用,Location.setShared(true) 已调用,且用户已授予位置权限。如果您看到 LocationManager.startGetLocation: not possible, no location dependency found,请将 play-services-location 依赖项添加到您的 app/build.gradle。有关详情,请参阅位置跟踪设置。
SDK 多久更新一次位置?
启用位置跟踪后,SDK 在应用使用期间大约每 5 分钟更新一次坐标。如果应用被强制停止,位置更新将暂停,直到用户再次打开应用。我可以按城市定向用户吗?
不能原生实现。OneSignal 跟踪国家(通过 IP 地址)和 GPS 坐标(通过 SDK),但不跟踪城市或区号。您可以使用反向地理编码服务从坐标推断城市并将其存储为标签。请参阅按城市或自定义位置定向。相关页面
移动 SDK 位置参考
setShared()、requestPermission() 和位置事件监听器的完整 API 参考。
位置选择提示
在请求原生位置权限之前,使用应用内消息作为软预提示。
细分
使用位置过滤器、标签和用户属性创建受众细分。
Radar 集成
通过 Radar 实现高级地理围栏、行程跟踪和位置验证。