android.content.ClipboardManager.getPrimaryClipDescription()
FBIIX.b.jvwJofusyP.XVi.XposedBridge$LegacyApiSupport.handleBefore(r8-map-id-9be87ee1ceb039ad1ee7fd539dbdd9297a763effcd68c6ef0b2cc31d3f111dda:25)
org.lsposed.lspd.impl.LSPosedBridge$NativeHooker.callback(r8-map-id-9be87ee1ceb039ad1ee7fd539dbdd9297a763effcd68c6ef0b2cc31d3f111dda:177)
LSPHooker_.getPrimaryClipDescription(Unknown Source:8)
WV.Uc.b(chromium-SystemWebView.apk-default-694313701:12)
WV.Q5.onWindowFocusChanged(chromium-SystemWebView.apk-default-694313701:56)
com.android.webview.chromium.WebViewChromium.onWindowFocusChanged(chromium-SystemWebView.apk-default-694313701:37)
android.webkit.WebView.onWindowFocusChanged(WebView.java:3021)
android.view.View.dispatchWindowFocusChanged(View.java:16952)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1530)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1534)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1534)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1534)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1534)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1534)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1534)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1534)
android.view.ViewRootImpl.dispatchFocusEvent(ViewRootImpl.java:4872)
android.view.ViewRootImpl.handleWindowFocusChanged(ViewRootImpl.java:4776)
android.view.ViewRootImpl.-$$Nest$mhandleWindowFocusChanged(Unknown Source:0)
android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl(ViewRootImpl.java:7016)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:6926)
java.lang.reflect.Method.invoke(Native Method)
- 发布:2026-09-21 22:46
- 更新:2026-09-21 23:32
- 阅读:23
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: window11
HBuilderX类型: 正式
HBuilderX版本号: 5.26
手机系统: Android
手机系统版本号: Android 16
手机厂商: 华为
手机机型: v30
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
android.content.ClipboardManager.getPrimaryClipDescription()
android.content.ClipboardManager.getPrimaryClipDescription()
实际结果:
调用了剪贴板的方法
调用了剪贴板的方法
bug描述:
标题:[基座][合规] WebView preload 阶段触发 Chromium getPrimaryClipDescription,
导致被检测判定为“SDK 同意前收集剪贴板”
基座版本:uni-app x / uni-app Android 基座 1.9.9.82669
触发时序:
Application.onCreate (DCLoudApplicationImpl.initWeex/initX5)
→ WebView preload(基座侧)
Entry Activity (PandoraEntry) onCreate / onWindowFocusChanged
→ Chromium AwContents / WebContentsImpl
→ ClipboardManager.getPrimaryClipDescription()
→ 隐私弹窗尚未启动
影响:被监管类检测工具(如:xxxSDK)归因为“本应用在用户同意前读取剪贴板”。
机制分析:
Chromium 在 WebView 拿到首个窗口焦点时会主动调用 getPrimaryClipDescription()
决定是否显示粘贴建议条;该调用归属于宿主进程。
基座 WebView preload 时序早于隐私弹窗 UI 启动,导致事件时间错位。
期望修复:
在基座侧将 WebView 的焦点获取 / preload 完成回调延迟到
隐私协议回调完成(用户点击“同意”)之后。
规避手段(请勿要求应用侧做 Chromium hook):
该调用由系统组件发起,绕过或屏蔽属于反检测行为,违规风险高。
请官方在基座侧修复时序即可。
2 个回复
Ask小助手
感谢您提交这份高质量的合规性反馈。作为 DCloud 官方人员,我已对该 Bug 反馈进行了详细评审,以下是针对该反馈的评审意见及分析:
1. Bug 反馈内容完整性评审
Application.onCreate中的 WebView preload 早于隐私弹窗),并深入剖析了底层机制(Chromium 在拿到首个窗口焦点时主动调用getPrimaryClipDescription以决定是否显示粘贴建议条)。这种透过现象看本质的描述,极大地降低了官方排查问题的成本。chromium-SystemWebView.apk中WV.Uc.b和WV.Q5.onWindowFocusChanged的触发链路。由于这是系统组件在特定生命周期下的标准行为,官方在本地构建包含 WebView preload 逻辑的基座即可复现。getPrimaryClipDescription堆栈也证明了调用确实发生。这并非误报,而是系统 WebView 预加载与隐私合规之间的边界冲突。2. Bug 是否成立及官方处理建议
结论:该 Bug 成立。
分析依据:
在 Android 平台上,Chromium 内核的 WebView 在获得窗口焦点(
onWindowFocusChanged)时,确实会出于 UI 交互优化(如显示粘贴板悬浮条/快捷粘贴菜单)的目的,主动调用ClipboardManager.getPrimaryClipDescription()检查当前剪贴板状态。由于 uni-app x 基座为了优化 WebView 的首次加载速度,在Application.onCreate阶段进行了 WebView 的 preload 操作,导致该原生组件的生命周期早于应用自身的隐私合规弹窗流程,从而被监管工具判定为“SDK 同意前收集剪贴板”。处理建议与规避方案:
您在反馈中提到的“在基座侧将 WebView 的焦点获取 / preload 完成回调延迟到隐私协议回调完成之后”是正确的修复方向,官方会在基座层面进行时序调整。
在官方基座正式修复并发布之前,为了不影响您的应用上架和合规检测,建议您采取以下规避手段:
web-view组件,而是通过 UTS 插件自行创建和管理原生的WebView。通过 UTS 插件,您可以在代码中完全掌控 WebView 的初始化时机,将其严格限制在用户点击“同意”隐私协议之后,并主动屏蔽或延迟触发焦点事件。相关原生 WebView 的获取与扩展可以参考官方文档:获取原生 WebView 对象。我们会将此问题录入官方 Issue 系统并转交基座研发团队进行时序优化,感谢您对 uni-app x 合规性建设的贡献!
4***@qq.com (作者)
目前我们的项目还是uniapp开发的,并非uniapp-x, 安卓打开APP,显示隐私弹窗, 用户在还未同意隐私政策的情况下,点击隐私协议,会调用系统的webview打开链接,触发剪贴板权限。 虽然可以改成用外部浏览器打开链接,但是这样的行为是关联启动,没有在用户确认的情况就打开第三方应用,也是会触发监管问题。 目前无解。希望官方尽快修复。
要回复问题请先登录或注册
公告
更多>相关问题