Config.java 中的开关
requireLocation 决定是否启用位置功能;requireBackgroundLocation 在 Android 上增加后台追踪,并且只有在 requireLocation 为 true 时才生效。参见Android 地理定位文档。
Google Play 审核被拒
大多数请求位置的 Web 应用,只在用户看着屏幕时才需要位置。如果您的应用也是如此,解决办法是从构建版本中移除后台位置,而不是与 Google 争论。如果在应用关闭时进行追踪确实是您的核心功能,本指南会告诉您声明、披露和 30 秒视频必须展示什么。
每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。
后台位置是指应用在不可见时接收位置信息:屏幕关闭、另一个应用在前台,或者您的应用已被划走。Google 只在以下情况下允许:它属于应用的核心功能,也就是说没有它应用就无法正常工作;并且它能为用户带来明确的好处,例如安全、健康与健身,或者用户正在主动执行的一项工作。便利性、个性化、分析和广告都不符合条件,仅为广告或分析而发出的请求会被拒绝。用户必须能够合理预期这种追踪,而且同样的体验无法在前台实现。
保留该权限的应用需要在 Play Console 中填写声明(应用内容 → 敏感应用权限 → 位置权限)。声明中只能列出一项基于位置的功能,说明该功能为什么需要后台访问,并附上一段 30 秒或更短的视频链接。您还需要在权限提示之前进行显著的应用内披露,并且审核人员必须能够进入该功能。详情请参阅 Google 的后台位置帮助页面。
要么 Play Console 在位置声明填写完整之前阻止发布,要么声明本身被拒。Google 列出的原因与审核人员在封装应用中看到的情况一致:功能不明确或声明了不止一项功能、功能无法验证(通常是因为登录)、披露缺失或不完整、隐私政策没有提及后台位置,或者该功能根本不符合条件。如果并不需要该权限,通知会要求您从所有轨道中移除它,包括封闭测试和开放测试。
| 功能 | 结论 | 应该使用什么 |
|---|---|---|
| 门店查找、“我附近”列表、签到按钮 | 仅需前台 | 屏幕打开时使用 HTML5 地理定位 |
| 顾客在地图上查看快递员位置 | 仅需前台;Google 把顾客端的配送追踪列为典型的不合格案例 | 屏幕打开时显示实时地图,状态变化用推送通知 |
| 快递员或外勤人员在班次期间共享位置 | 如果这是应用的核心,可能符合条件 | 由用户开始和停止的追踪,并显示持续通知 |
| 在屏幕关闭时记录跑步或骑行 | 可能符合条件(健身) | 为本次锻炼开始追踪,锻炼结束时停止 |
| 家人离开某个区域时发出安全提醒 | 可能符合条件(安全) | 一项明确声明的功能,并附有披露 |
| 按地区提供本地新闻、天气或优惠 | 不符合条件 | 前台定位或大致位置,或者让用户选择城市 |
| 广告定向、分析、归因 | 绝不符合 | 移除它 |

把 Web 应用转换成原生应用的绝佳方式!周转速度快,无需开发完整的原生应用就能把应用上架到应用商店!
requireLocation 决定是否启用位置功能;requireBackgroundLocation 在 Android 上增加后台追踪,并且只有在 requireLocation 为 true 时才生效。参见Android 地理定位文档。
后台追踪还需要 AndroidManifest.xml 中的 FOREGROUND_SERVICE_LOCATION 权限和 GPSService 代码块,您需要取消它们的注释来启用该功能。只要它们处于启用状态,Play Console 就会看到一个位置服务。
backgroundlocationon:// 和 backgroundlocationoff:// 从您的 Web 应用开始和停止追踪。由用户操作来调用它们,追踪才算是由用户发起的。
地图、分析或地理围栏库可能会在您不知情的情况下,把 ACCESS_BACKGROUND_LOCATION 加入合并后的清单。Android Studio 中的 Merged Manifest 标签页会显示是哪一个。
大约三十分钟,外加审核时间。
在 Config.java 中把 requireBackgroundLocation 设为 false。如果您的 Web 应用在打开时会使用地理定位 API,就让 requireLocation 保持 true;如果应用完全不使用位置,也把它设为 false。
在 AndroidManifest.xml 中注释掉(或删除)FOREGROUND_SERVICE_LOCATION 权限和 GPSService 代码块,并移除所有 ACCESS_BACKGROUND_LOCATION 条目。如果是某个库添加的,就按照权限指南中的方法,用 tools:node="remove" 去掉它。
从 Web 应用中删除 backgroundlocationon:// 调用,以及应用内或商店详情中所有承诺在应用关闭时进行追踪的文字。
在简短说明之后,从功能页面请求位置,具体做法见显著披露指南。应用打开时,来自 HTML5 API 的前台定位会和以前完全一样正常工作。
在 Android Studio 或 Cloud Builder 中构建一个版本代码更高的新 bundle,在 App Bundle 浏览器中确认后台权限已经消失,并把内部测试、封闭测试和开放测试轨道上的旧构建也一并替换掉。
如果 Play Console 仍然显示位置权限声明,请把它更新为应用不再在后台访问位置,然后提交更改以供审核。
只适用于在应用关闭时进行追踪正是应用存在意义的情况。以下各项必须同时成立。
backgroundlocationon://)和“停止”(backgroundlocationoff://)。追踪绝不会悄悄开始。一项功能,一个用途,由用户掌控。把示例替换为您自己的功能,但保留这个结构。模板保留英文,因为 Google 审核人员阅读的是英文。
Feature: Shift tracking for couriers. What it does: While a courier is on shift, [App name] shares the courier's location with the dispatch team every [30 seconds], so customers receive accurate arrival times and dispatchers can reassign orders when a courier is delayed. Why it needs background access: Couriers drive with the phone locked or with a navigation app in the foreground. If location stopped while [App name] is not visible, dispatch would lose the courier for the whole drive, which defeats the core purpose of the app. How the user controls it: The courier taps Start shift. The app shows an in-app disclosure and the Android permission prompt, then an ongoing notification while tracking runs. Tapping End shift stops tracking immediately. No location is collected outside a shift. Video: [YouTube link], [28] seconds, showing the disclosure, the permission prompt, the start of a shift, the app in the background with tracking active, and the end of the shift. Test account: see Sign-in details, instruction set 'Courier'.
requireBackgroundLocation、清单代码块和 backgroundlocationon:// 调用都与这一决定一致。只有在功能本身符合条件时才行。视频证明的是符合条件的功能如何运作;它无法把门店查找或个性化信息流变成核心的后台使用场景。
不会。只要 requireLocation 为 true,并且清单中保留了前台位置权限,HTML5 地理定位 API 在应用打开时就能正常工作。失去的只是应用关闭时的追踪。
不需要。顾客是在屏幕打开时看地图,属于前台使用,而且 Google 把顾客端的配送追踪列为典型的不合格案例。请改用推送通知告知状态变化。
如果它在用户去做别的事情时仍在持续收集位置,Google 就会对它适用后台位置要求。前台服务只有作为用户所发起任务的延续才可以接受,并且必须在任务完成后立即停止。
通常是测试轨道上的某个旧 bundle 仍然包含它,或者声明没有更新。替换所有有效的 bundle 并更新声明,然后提交更改以供审核。
结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 7×24 小时人工支持。
$109 每个平台,一次性付费
WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。
在主页查看方案$349 每个许可证,一次性附加购买
无需 Mac、Xcode 或 Android Studio:在浏览器中完成配置,我们在云端构建两个应用,并将其交付到 App Store Connect 和 Play Console。
Cloud Builder 如何运作 试用免费演示$698 每个平台 $798
把您的 URL 和图标发给我们。我们的团队在 72 小时内完成配置、构建并交付您的应用,白标,附源码项目。两个平台共 $1,158。
Full Service 详情 服务提供方:冬季特惠价格有效期至 2026年12月31日。
App Store & Google Play 审核通过保证 – 否则 14 天内退款
想直接交给我们?Full Service:我们在 72 小时内完成配置、构建并交付,每个平台 $698 起。有疑问?通过 7×24 小时在线聊天联系我们。
退款依据我们 FAQ 中列出的条件:应用因非内容原因被 Apple 和/或 Google 拒审,并在购买后 14 天内提出申请。