必须禁用service worker全局执行并清除残留注册:一、设置中关闭【service worker】开关;二、清空所有时间的【网站数据】和【缓存文件】;三、对顽固域名单独注销;四、禁用javascript或按需白名单例外;五、通过官方测试页验证注册失败即生效。

网页利用Service Worker在后台静默拉起进程,会导致vivo浏览器未经操作就跳转APP、自动下载或持续定位,这类行为绕过用户交互确认,必须从脚本执行层直接切断。
禁用Service Worker全局执行能力
Service Worker是独立于页面主线程运行的脚本,一旦注册成功即可在后台持续激活,即使关闭网页也能触发唤端、下载或推送。关闭其全局支持是最彻底的阻断方式。
1、打开vivo浏览器 → 点击右下角【我的】→ 右上角齿轮图标进入【设置】。
2、选择【隐私与安全】→ 滑动到底部点击【高级网站设置】。
3、找到【Service Worker】或【后台服务脚本】选项 → 将开关设为关闭状态。
【关闭后所有已注册的Service Worker将被立即注销,包括taobao.com、douyin.com等站点遗留的持久化脚本】。若该选项不可见,请先将浏览器升级至v14.9.10.0及以上版本(2026年5月起强制启用该开关入口)。
清除特定域名残留的Service Worker注册记录
有些网站曾在你授权后完成Service Worker安装,即便全局关闭,其缓存仍可能在下次访问时尝试重注册。必须手动清理已注册条目。
方法一:通过浏览器内置清理路径
1、在【设置】→【隐私与安全】→【清空浏览数据】中,勾选【网站数据】和【缓存文件】两项。
2、点击【时间范围】→ 选择【所有时间】→ 点击【清空数据】。
3、重启浏览器后,再次访问曾出问题的网站(如jd.com),地址栏左侧锁形图标旁不再显示“SW”标识,即表示注册已失效。
方法二:精准定位并注销(适用于顽固站点)
1、访问目标网站(例如 https://pay.alipay.com)→ 点击地址栏左侧锁形图标 → 选择【网站设置】。
2、向下滚动,查找【Service Worker】或【后台同步】权限项 → 若显示“已启用”,点击进入 → 选择【注销】或【删除注册】。
注意:部分子域名(如login.taobao.com)需单独处理,仅屏蔽www.taobao.com无效。
阻止网页重新注册Service Worker的脚本调用
网页可通过navigator.serviceWorker.register()主动发起注册,拦截该API调用可防止二次植入。
第一步:启用JS级协议拦截
进入【设置】→【隐私与安全】→【网站权限管理】→【按网站管理】→ 选择【所有网站】→ 找到【JavaScript】权限 → 设为【禁止】。
第二步:对高风险域名实施白名单例外(可选)
若需保留部分网站功能(如银行类),返回【按网站管理】→ 点击【添加网站】→ 输入bankofchina.com → 在其权限页中单独开启JavaScript,其余保持禁用。
【禁用JavaScript后,所有基于Service Worker的静默拉起、后台同步、推送订阅将完全失效】,但部分网页可能显示不完整或功能受限,属预期行为。
验证拦截是否生效
1、打开vivo浏览器 → 访问 https://web.dev/service-worker-lifecycle/(官方测试页)。
2、点击页面中的【Register SW】按钮 → 观察控制台或弹窗反馈。
3、若出现“Registration failed: TypeError: Failed to register a ServiceWorker”或无任何响应,说明拦截成功。
4、再访问此前出问题的网站(如某电商活动页),确认不再出现后台跳转、自动下载或定位请求弹窗。











