mcpField
A
android-webview-debug

android-webview-debug

github.com/fudesign2008开发689 次安装2 天前更新
代码仓库

关于 android-webview-debug

android-webview-debug 是一项用于启用或恢复项目中 Android WebView 调试设置的技能。它记录被修改的代码行,恢复时仅还原匹配项,并将不匹配项留待确认。

主要功能

  1. 01查找 WebView 调试调用
  2. 02启用未注释的调用
  3. 03在状态文件中记录原始代码行
  4. 04恢复匹配项并标记不匹配项

适用场景

  1. 01临时启用 WebView 调试
  2. 02恢复调试设置,同时避免覆盖不匹配的修改

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fudesign2008/open-skills --skill android-webview-debug

安装后在 Claude Code 中输入/android-webview-debug确认已加载。

详细介绍

Android WebView 调试开关

触发条件

  • 「开启 WebView 调试」 / android-webview-debug-enable:将项目中所有 setWebContentsDebuggingEnabled 调用改为 true,并记录修改位置及其原始内容,以便之后恢复。
  • 「恢复 WebView 调试」 / android-webview-debug-revert:从记录中恢复此前修改的位置;与记录不匹配的条目不会自动恢复,而是在末尾列出,供用户确认。

状态文件约定

  • 路径:项目/工作区根目录中的 .android-webview-debug-state.json。
  • 创建时机:仅在运行 android-webview-debug-enable 时创建或覆盖;恢复操作只读取该文件(恢复完成后可删除或归档)。
  • 格式:
{
  "version": 1,
  "createdAt": "ISO8601",
  "projectRoot": "/absolute/path/to/project",
  "entries": [
    {
      "file": "app/src/main/java/.../CoreWebView.kt",
      "line": 42,
      "original": "setWebContentsDebuggingEnabled(AppContext.isDebug())",
      "replaced": "setWebContentsDebuggingEnabled(true)"
    }
  ]
}
  • 注意:仅记录本次启用期间实际发生更改的条目(已设为 true 的调用不包含在内)。建议将 .android-webview-debug-state.json 添加到 .gitignore,以免意外提交。

android-webview-debug-enable 流程

  1. 搜索:使用 grep 或代码库搜索查找所有 setWebContentsDebuggingEnabled 出现的位置(包括注释行),并列出所有位置。
  2. 分类:将每个位置标记为「已为 true」「条件表达式或其他表达式」或「已注释」。
  3. 可选确认:如需用户输入,提供 1–2 个快速选项(例如:「全部改为 true?」 「也修改已注释的调用?」)。用户可以简短回复,例如「1A 2B」。
  4. 检查现有状态:如果项目根目录中已存在 .android-webview-debug-state.json,先询问:「启用记录已存在。是否覆盖并继续?」等待用户确认后再覆盖。
  5. 写入状态文件:在进行任何代码替换之前,为即将修改的条目生成 entries,并写入 .android-webview-debug-state.json(路径:项目根目录)。
  6. 执行替换:将「条件表达式或其他表达式」调用改为 setWebContentsDebuggingEnabled(true)。默认不要修改已注释的调用,除非用户明确表示「也修改已注释的调用」或「取消注释」。
  7. 摘要:简要列出已修改的文件和条目数。

android-webview-debug-revert 流程

  1. 读取状态文件:从项目根目录读取 .android-webview-debug-state.json。如果未找到,提示:「未找到启用记录,无法恢复」并退出。
  2. 逐条处理:
    • 对于每个条目,读取相应文件和行,并与 replaced 比较(或检查是否包含 setWebContentsDebuggingEnabled(true))。
    • 匹配:将该行替换为 original(恢复修改前的内容)。
    • 不匹配:不要自动恢复;将其添加到「不匹配」列表中(记录文件、行号和当前行摘要)。
  3. 先完成所有可恢复的条目:仅对当前行与记录匹配的条目应用替换。
  4. 最终提示并手动确认:如果存在不匹配的条目,在末尾列出:「以下 N 个条目与启用记录不匹配(可能已被手动修改)。请确认是否按记录恢复或跳过。」根据用户的选择,逐项恢复或跳过。
  5. 摘要:报告已恢复的条目数;如果全部恢复,提示:「现在可以删除 .android-webview-debug-state.json,或将其添加到 .gitignore。」

默认规则

  • 启用:默认不修改已注释的 setWebContentsDebuggingEnabled 调用;用户可以用一句话覆盖此规则(例如「也修改已注释的调用」)。
  • 恢复:仅恢复状态文件中记录的条目;不匹配的条目不会自动恢复,而是始终在末尾列出,供用户手动确认。
  • 状态文件:仅在项目根目录保留一份;启用时覆盖,恢复时只读取。

验证清单

  • 启用后:项目中所有未注释的 setWebContentsDebuggingEnabled 调用都应为 true,并且根目录中应存在 .android-webview-debug-state.json,其中的 entries 应与本次会话的修改相符。
  • 还原后:还原的行应与状态文件中的 original 相符;不匹配的条目应列出,并根据用户确认进行处理。

评论

支持 Markdown