强制合并
This commit is contained in:
2149
docs/ai-agent-integration.md
Normal file
2149
docs/ai-agent-integration.md
Normal file
File diff suppressed because it is too large
Load Diff
@@ -105,38 +105,4 @@ components/mescroll/components/mescroll-empty.json
|
||||
|
||||
有些"修模拟器表现"的尝试(@load 多次重试 setNavigationBarTitle、加看门狗定时器)会让真机代码变得复杂、可能和内嵌页 `document.title` 抢控制权、引入边界 case。
|
||||
|
||||
**结论**:遇到 navigationBar / web-view 相关问题,先在真机上复现确认;只在真机还在问题再继续查代码。
|
||||
|
||||
#### 4. `setClipboardData:fail api scope is not declared in the privacy agreement`
|
||||
|
||||
**症状**:AI 智能(`pages_tool/ai-chat`)复制消息时 Toast 提示
|
||||
`复制失败:setClipboardData:fail api scope is not declared in the privacy agreement`,
|
||||
H5 正常,**只有微信小程序失败**。
|
||||
|
||||
**根因**:微信自 2023-09-15 起把剪贴板接口(`setClipboardData` / `getClipboardData`)纳入
|
||||
《小程序用户隐私保护指引》。小程序后台未声明「剪贴板」,或声明还在审核中时,调用直接失败,
|
||||
返回 `errno: 112`。这是**平台侧配置问题,不是代码问题**:
|
||||
`app.json` 的 `permission` / `requiredPrivateInfos` 都不涉及剪贴板,改代码无法绕过。
|
||||
|
||||
**正确处理**:
|
||||
- 微信公众平台 → 设置 → 基本设置 → 服务内容声明 → 用户隐私保护指引 → 更新 →
|
||||
在「开发者收集你的……信息」中勾选「剪贴板」并填写用途 → 提交审核;
|
||||
**审核通过后才生效**,通过后重新编译/发版即恢复。
|
||||
- 代码侧只做兜底:`common/js/uniapp.utils.js` 的 `isClipboardPrivacyError()` 识别
|
||||
`errno === 112` / errMsg 含 `privacy agreement`,用 i18n 文案替换微信原始英文错误
|
||||
(AI 聊天页 `copyMessage` 同样处理),不要把平台英文报错抛给用户。
|
||||
- 开发期想临时绕过校验:把 `manifest.json` → `mp-weixin` → `"__usePrivacyCheck__"` 改成 `false`
|
||||
(**仅限本地调试**,上线前必须还原,并按上面的后台配置完成声明)。
|
||||
|
||||
**注意**:根目录的 `privacy.json`(内容为 `Scope.writeClipboard`)不是微信的隐私声明机制,
|
||||
未被任何代码或构建流程引用,不要把它当成剪贴板隐私的解决方案。
|
||||
|
||||
**代码侧备选(无法改后台、只想先跑起来时)**:
|
||||
- 写剪贴板在微信里只有 `wx.setClipboardData` 这一个 JS API,平台拦截 errno 112 时**任何代码都绕不过**,
|
||||
所以「复制」按钮在没声明剪贴板权限前必然失败。
|
||||
- AI 回复的**展示**走 `<rich-text>` 富文本(豆包风格:加粗标题、悬挂缩进列表、彩色链接),由
|
||||
`parseMarkdown()` 生成 HTML、`getAIDisplayContent()` 输出,H5 用 `v-html`、微信小程序用 `<rich-text :nodes>`。
|
||||
- 富文本**不可长按选区复制**(微信 rich-text 不支持),复制只能走「复制」按钮(即 `wx.setClipboardData`),
|
||||
因此必须声明剪贴板权限,或开发期把 `manifest.json` → `mp-weixin` → `"__usePrivacyCheck__"` 改 `false`
|
||||
(仅本地调试,上线前必须还原)。
|
||||
- 失败时提示会引导用户复制不可用(`isClipboardPrivacyError()` 识别 errno 112)。
|
||||
**结论**:遇到 navigationBar / web-view 相关问题,先在真机上复现确认;只在真机还在问题再继续查代码。
|
||||
Reference in New Issue
Block a user