关于 android-webview-debug
android-webview-debug 是一项用于启用或恢复项目中 Android WebView 调试设置的技能。它记录被修改的代码行,恢复时仅还原匹配项,并将不匹配项留待确认。
主要功能
- 01查找 WebView 调试调用
- 02启用未注释的调用
- 03在状态文件中记录原始代码行
- 04恢复匹配项并标记不匹配项
适用场景
- 01临时启用 WebView 调试
- 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 流程
- 搜索:使用 grep 或代码库搜索查找所有
setWebContentsDebuggingEnabled出现的位置(包括注释行),并列出所有位置。 - 分类:将每个位置标记为「已为 true」「条件表达式或其他表达式」或「已注释」。
- 可选确认:如需用户输入,提供 1–2 个快速选项(例如:「全部改为 true?」 「也修改已注释的调用?」)。用户可以简短回复,例如「1A 2B」。
- 检查现有状态:如果项目根目录中已存在
.android-webview-debug-state.json,先询问:「启用记录已存在。是否覆盖并继续?」等待用户确认后再覆盖。 - 写入状态文件:在进行任何代码替换之前,为即将修改的条目生成
entries,并写入.android-webview-debug-state.json(路径:项目根目录)。 - 执行替换:将「条件表达式或其他表达式」调用改为
setWebContentsDebuggingEnabled(true)。默认不要修改已注释的调用,除非用户明确表示「也修改已注释的调用」或「取消注释」。 - 摘要:简要列出已修改的文件和条目数。
android-webview-debug-revert 流程
- 读取状态文件:从项目根目录读取
.android-webview-debug-state.json。如果未找到,提示:「未找到启用记录,无法恢复」并退出。 - 逐条处理:
- 对于每个条目,读取相应文件和行,并与
replaced比较(或检查是否包含setWebContentsDebuggingEnabled(true))。 - 匹配:将该行替换为
original(恢复修改前的内容)。 - 不匹配:不要自动恢复;将其添加到「不匹配」列表中(记录文件、行号和当前行摘要)。
- 对于每个条目,读取相应文件和行,并与
- 先完成所有可恢复的条目:仅对当前行与记录匹配的条目应用替换。
- 最终提示并手动确认:如果存在不匹配的条目,在末尾列出:「以下 N 个条目与启用记录不匹配(可能已被手动修改)。请确认是否按记录恢复或跳过。」根据用户的选择,逐项恢复或跳过。
- 摘要:报告已恢复的条目数;如果全部恢复,提示:「现在可以删除
.android-webview-debug-state.json,或将其添加到.gitignore。」
默认规则
- 启用:默认不修改已注释的
setWebContentsDebuggingEnabled调用;用户可以用一句话覆盖此规则(例如「也修改已注释的调用」)。 - 恢复:仅恢复状态文件中记录的条目;不匹配的条目不会自动恢复,而是始终在末尾列出,供用户手动确认。
- 状态文件:仅在项目根目录保留一份;启用时覆盖,恢复时只读取。
验证清单
- 启用后:项目中所有未注释的
setWebContentsDebuggingEnabled调用都应为true,并且根目录中应存在.android-webview-debug-state.json,其中的entries应与本次会话的修改相符。 - 还原后:还原的行应与状态文件中的
original相符;不匹配的条目应列出,并根据用户确认进行处理。
评论
支持 Markdown