美洽怎么设置访客端聊天窗口后台运行权限?
美洽访客端聊天窗口后台运行的关键有三:保持前端接收、获得通知权限、后端推送与离线消息支持。网页需注册服务工作线程并订阅浏览器推送,提示并获得通知权限;移动网页结合可见性与轮询;原生应用集成美洽移动SDK并完成推送配置,同时申请系统电池优化豁免。控制台开启离线消息和消息中心,并在访客端友好引导授权。详见后

先搞清楚为什么要设置后台运行权限
这听起来很技术,但其实很直白:访客端能不能在“关闭/切换页面”或者“屏幕锁屏”后仍然收到消息,取决于两件事。一是客户端是否有能力在后台接收或展示通知(操作系统/浏览器权限);二是服务端是否把消息以适合的方式推送到客户端(推送通道与离线缓存)。美洽作为客服中台,既提供前端 SDK 也支持服务器端推送与离线消息,所以我们需要同时把前端、系统权限和美洽控制台配置都铺好,缺一不可。
总览:三个层面、九个步骤
- 前端能力:网页 Service Worker / 浏览器推送;移动 H5 的可见性策略与轮询。
- 原生能力:Android / iOS 集成美洽 SDK,并配置系统推送(FCM、APNs 或第三方推送)。
- 后台与控制台:在美洽控制台开启离线消息、消息中心,配置推送密钥,并在访客端引导授权。
九个高层步骤(先看个总览)
- 网页端:注册 Service Worker,申请通知权限,订阅 Push。
- 网页端:实现离线消息缓存或在可见性变化时重连。
- 移动网页:结合页面可见性 API、长轮询或短连接心跳。
- Android:集成美洽 SDK,配置 FCM 或三方推送,申请 POST_NOTIFICATIONS(Android 13+)、忽略电池优化。
- iOS:集成美洽 SDK,配置 APNs,申请用户推送权限。
- 控制台:在美洽后台配置推送服务密钥(FCM/APNs/个推等)并启用离线消息。
- 访客端:友好提示用户打开通知与网络权限,提供步骤引导。
- 适配:对主流厂商(小米、华为、OPPO、Vivo)做自启与电池白名单适配。
- 监控与回退:加入重连策略、消息中心展示,确保消息不丢失。
一、网页端(PC/移动浏览器)实现细节
网页端要在后台接收消息,最可靠的方式是使用浏览器推送(Web Push)+ Service Worker 显示通知。原理是:当页面不可见或浏览器在后台时,Service Worker 仍可接收推送并展示通知,从而实现“后台运行”感受。
核心点
- 注册 Service Worker:在主页面注册,确保 sw.js 能处理 push 与 notificationclick。
- 请求通知权限:在合适时机(非立刻弹窗)提示用户允许通知。
- 订阅推送:通过 Push API 订阅得到 endpoint(或交给美洽/服务端处理)。
- 离线消息策略:页面可实现消息中心或在 reconnect 时拉取未读消息。
示例(思路性代码)
下面只是示意,实际集成请按自己项目和美洽文档调整:
<!-- 注册 Service Worker -->
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js').then(reg => {
// 订阅推送
return reg.pushManager.getSubscription().then(sub => {
if (sub) return sub;
return reg.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: VAPID_KEY });
});
}).then(sub => {
// 把 sub 信息发送到后端或美洽,便于服务端推送
});
}
sw.js 需要实现 push 事件处理并展示通知(self.registration.showNotification)。另外,注意用户体验:第一次不要立刻弹权限窗口,最好在用户有互动意图时再提示。
二、移动网页(H5)注意点
移动端浏览器对后台任务更严格,很多手机系统会在切后台后直接限制 JS 执行。因此,移动 H5 常用组合策略:
- 优先使用浏览器推送(支持的浏览器,如 Chrome、部分 Android 浏览器)。
- 配合页面可见性(Page Visibility API)在回到前台时做重连与拉取未读。
- 在不支持 Push 的浏览器,使用短轮询或 WebSocket + 后端离线缓存作为回退。
- 对用户进行引导,提示“在浏览器设置中允许通知”以及如何保留后台任务(部分厂商可在浏览器设置里允许后台运行)。
三、原生 App(Android)实现要点
原生 App 做后台接收,比网页更可控,但也要处理系统电池策略与通知权限。
必须做的几件事
- 集成美洽 Android SDK:按照美洽 SDK 指南接入会话、事件等。
- 配置推送通道:通常用 FCM(Firebase Cloud Messaging),在 AndroidManifest 注册所需 receiver,并在项目中加入 google-services 配置;或者对国内使用第三方推送(个推、华为推送、小米推送)做适配。
- 请求通知权限:Android 13+ 需在运行时请求 POST_NOTIFICATIONS 权限。
- 电池优化豁免:向用户发起 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 请求(注意:仅在必要时申请,且需要用户手动确认)。
- 自启 & 后台白名单:主流 ROM(MIUI、EMUI、ColorOS 等)可能需要用户在系统设置里开启“自启动”或“后台保持”。
Android 权限与 Manifest 示例(思路)
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <!-- Android13+ --> <uses-permission android:name="android.permission.WAKE_LOCK"/> <!-- 注册 FCM 接收器、服务等,按 FCM 文档配置 -->
另外,在 App 中实现前台服务(Foreground Service)可以提高在某些场景下保持连接的稳定性,但这会带来通知栏常驻提醒,需要评估用户体验。
四、原生 App(iOS)实现要点
iOS 对后台网络非常严格,不能在后台随意保持长连接。要想在访客端“后台收到消息”,核心是 APNs 推送。
- 集成美洽 iOS SDK:按官方文档配置 SDK。
- 配置 APNs:在 Apple 开发者中心创建推送证书或 Key,并在美洽控制台或自建推送服务器中配置。
- 请求通知权限:在合适时机向用户请求 UNUserNotificationCenter 的授权。
- Background Modes:除非使用 VoIP、音频等场景,否则不应开启会话保持的后台模式。通常通过标准推送与离线消息机制即可满足需求。
提示:iOS 的推送交付率和时延受 APNs 影响,配合离线消息(由美洽保存)在用户下次打开时同步未读是必要策略。
五、在美洽控制台需要做的配置
在美洽后台(控制台)通常需要做以下设置,以保证推送与离线消息机制发挥作用:
- 启用并填写推送密钥:上传 APNs 证书/Key、FCM Server Key,或填写第三方推送服务(个推、信通)所需信息。
- 开启离线消息/消息中心:确保访客不在线时消息被保存并可在下次上线时拉取。
- 配置通知模板:设置推送通知的标题、内容格式,便于在不同平台合适展示。
- 测试推送:在控制台或测试工具里发送测试通知,验证各种设备与浏览器的实际表现。
不同企业版或套餐中,美洽可能提供不同级别的推送适配支持(比如直接对接第三方厂商推送),具体以美洽控制台提示为准。
六、常见问题与排查思路(很常见也很烦)
- 消息收不到:先检查终端是否有通知权限,是否被系统电池策略限制;再检查推送通道(FCM/APNs)配置是否正确;最后看服务端是否真的把消息发出并返回成功。
- 网页推送无效:确认 HTTPS、Service Worker 是否注册成功、VAPID key 是否正确、浏览器是否支持 Push。
- Android 机型差异大:很多国产 ROM 会强行杀后台,需引导用户设置自启、后台保活、关闭内存清理策略。
- iOS 无声音或不展示:检查推送 payload 是否包含正确的 alert、sound 字段,并确认用户是否关闭了声音或在勿扰模式。
排查技巧
- 从客户端出发:查看系统通知设置、浏览器权限、应用自带开关。
- 从服务端出发:查看推送平台返回的回执(APNs/FCM 的响应),核对 token 是否有效。
- 在美洽控制台查看消息日志:是否有出站记录和错误回执。
七、主流手机厂商适配建议(现实很重要)
国内手机厂商常常有额外的进程管理,会干掉后台连接。下面是通用的用户引导和兼容策略:
- 小米(MIUI):引导用户在“权限管理/自启动/电池优化”中开启自启并将应用加入电池白名单。
- 华为(EMUI):引导在“权限/自启动/受保护的应用”中允许后台启动并关闭相关省电策略。
- OPPO / Vivo / Realme:提示用户在“应用管理/耗电保护/后台运行”中允许应用后台保持。
- 通用策略:在应用内提供一键引导(跳转到系统设置页面)并配合图文说明,让用户操作更容易。
八、示例表格:权限与作用一览
| 权限/设置 | 作用 |
| 浏览器通知权限 | 允许 Web Push 在后台展示通知 |
| Service Worker | 处理推送事件并在后台显示通知 |
| POST_NOTIFICATIONS(Android13+) | 运行时允许应用发起通知 |
| 忽略电池优化(Android) | 避免系统频繁杀掉后台进程,保持长连接稳定 |
| APNs / FCM 配置 | 系统级推送通道,确保通知可靠送达 |
九、实践建议(怎么一步步做,不拥挤)
- 先做好服务端:确保美洽控制台或自建推送通道配置齐全(APNs/FCM/第三方)。
- 网页优先:实现 Service Worker + Push,测试不同浏览器(Chrome、Firefox、Safari 的限制不同)。
- App 集成:Android/iOS 各测试真机,确认推送 token 在服务端可用,能收到测试通知。
- 用户引导:在关键流程(首次会话、重要通知)时向用户解释为什么需要权限并提供跳转入口。
- 监控与回退:统计消息送达率,提供消息中心作为补偿性手段,保证用户打开应用时能看到未读消息。
十、小贴士(那些容易忽略的细节)
- 不要频繁弹权限框:选合适时机询问,避免用户因为被打扰而拒绝。
- 测试覆盖面要广:至少覆盖 Android 多个 ROM、iOS、主流浏览器、桌面与移动端。
- 合并推送策略:把相近通知合并,减少用户被推送打扰的概率。
- 日志很重要:记录每次推送请求与平台回执,便于快速定位问题。
上述步骤里,很多实际操作(比如在美洽控制台上传 APNs Key 或填写 FCM Key、开启离线消息开关)有具体的控制台界面和字段,建议在做之前浏览美洽的产品文档并按产品指南逐项配置;同时在上线前在真实设备上做完整链路测试:从发送端(美洽/后端)到推送通道,再到设备最终显示。就这样一步步来,会慢慢把“后台运行”的体验做得可靠又可控。