Skip to content

修复 Android 应用日志复制权限错误 - #20

Merged
zilorn merged 2 commits into
mainfrom
codex/log-clipboard
Oct 11, 2026
Merged

zilorn merged 2 commits into
mainfrom
codex/log-clipboard

Conversation

@zilorn

@zilorn zilorn commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

解决的问题 / Problem

Android 用户在「设置 → 调试 → 应用日志」点击复制时,WebView 的 navigator.clipboard.writeText 拒绝写入,显示「复制日志失败:Write permission denied.」。截图中的 ReaderX 版本为 0.5.0。

Fixes #19

改动后的行为 / Resulting behavior

  • 日志复制在 Android 与桌面 Tauri 应用中调用原生剪贴板插件,在浏览器开发环境中继续使用网页 Clipboard API。
  • Rust 注册 clipboard-manager 插件,主窗口仅启用 clipboard-manager:allow-write-text,同步 JS/Rust 依赖与锁文件;两端当前实际版本均为 2.3.3,均使用 ~2.3.3 约束,避免安装依赖时跨次版本导致 Android 构建被拦截。
  • 复制内容仍为所选日志文件的当前筛选结果;空内容提示、成功提示、失败上报保持原有行为。
  • 更新日志文档与前端技能入口。界面布局及中英文文案无变化。

验证 / Validation

  • 类型检查 / Type check: pnpm exec tsc --noEmit 通过。
  • 文案检查 / i18n check: pnpm run i18n:check 通过(现有提示仍在)。
  • 前端构建 / Frontend build: pnpm build 通过。
  • Rust 测试(如适用)/ Rust tests (if applicable): cargo check -p readerx --lib --locked 通过,包含原生插件注册与 capability 校验;有两条现有 book_store 未使用项警告。未改动业务 Rust 算法,未运行完整 Rust 测试套件。
  • 依赖验证: pnpm install --frozen-lockfile 通过;pnpm tauri info 确认剪贴板 JS/Rust 插件均为 2.3.3。
  • 调用验证: 使用实际 JS 插件配合模拟 Tauri IPC,验证网页写入抛出权限错误时仍调用 plugin:clipboard-manager|write_text、多行文本原样传递、浏览器复制路径及两种路径失败透传;确认仅授予文本写入权限。
  • Android APK: pnpm tauri android build --apk --target aarch64 --split-per-abi --ci 通过,生成 arm64 release APK。本地使用 NDK 30.0.16138531 / JDK 17;复用主目录 target 缓存时曾缺少 TauriActivity.kt,按锁定 Tauri 2.11.5 的代码生成模板补齐隔离工作区的生成文件后完成构建。生成文件不提交。
  • 手动验证 / Manual verification: 当前没有可用 Android 设备,未进行 Android 真机、桌面原生剪贴板与浏览器交互实测;Windows 构建未验证。建议在 Android 上复制当前日志并粘贴到文本输入框,重复验证切换文件、错误级别筛选及空日志提示。
  • git diff --check 通过。

数据与兼容性 / Data and compatibility

不涉及持久化格式或旧数据迁移。Android 与桌面共用文本写入入口;浏览器开发环境保留网页 API。新增权限限定主窗口的文本写入,不启用剪贴板读取、图片、HTML 或清空权限。复制内容不写入日志。

提交前检查 / Checklist

  • 已阅读 CONTRIBUTING.md 与 AGENTS.md / I read CONTRIBUTING.md and AGENTS.md.
  • 仅包含本次任务相关文件 / Changes are limited to this task.
  • 已更新相关文档与中英文文案(如适用)/ Relevant docs and both locales are updated where applicable.(文案无变化)
  • 已完成适用检查,并说明未验证的部分 / Applicable checks are complete and unverified parts are explained.

@zilorn zilorn self-assigned this Oct 11, 2026
@zilorn zilorn added the bug Something isn't working label Oct 11, 2026
@zilorn
zilorn merged commit 5a64f3a into main Oct 11, 2026
3 checks passed
@zilorn
zilorn deleted the codex/log-clipboard branch October 11, 2026 09:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Android 应用日志复制失败:Write permission denied

1 participant