Skip to content

🐛 修复 Edge Android 移动端 popup 适配问题 (#686)#1507

Merged
CodFrm merged 1 commit into
mainfrom
fix/686-edge-mobile-popup
Jun 13, 2026
Merged

🐛 修复 Edge Android 移动端 popup 适配问题 (#686)#1507
CodFrm merged 1 commit into
mainfrom
fix/686-edge-mobile-popup

Conversation

@CodFrm

@CodFrm CodFrm commented Jun 13, 2026

Copy link
Copy Markdown
Member

Checklist / 检查清单

  • Fixes mentioned issues / 修复已提及的问题
  • Code reviewed by human / 代码通过人工检查
  • Changes tested / 已完成测试

Description / 描述

close #686

修复 Edge Android 移动端两处 UI 适配问题(根因不同,分别处理):

1. popup 右侧留白

popup.htmlhtml/body 宽度写死为 320px。桌面端 popup 的视口宽度恒等于 body 宽度(320px),而移动端被浏览器强制撑满设备宽度(≥360px),固定 320px 就在右侧留下空白。改用媒体查询——桌面端不命中、行为零变化,移动端切换为 width:100%

@media (min-width: 340px) {
  html, body { width: 100%; max-height: none; }
}

阈值 340px 卡在桌面 320px 与最小手机宽度(≥360px)之间。

2. 点击「设置」等内部页打不开

window.open 在 Edge Android 上打不开 chrome-extension:// 内部页(外部 https 网址正常,所以「获取脚本」能用)。将 6 处打开 /src/*.htmlwindow.open 改为 openInCurrentTab(底层 chrome.tabs.create,扩展 API 不受移动端 window.open 限制):

文件 入口
popup/App.tsx 设置、新建脚本
components/ScriptMenuList 编辑脚本、用户配置
components/layout/MainLayout 拖拽导入安装
options/routes/Tools 数据导入

外部 httpswindow.open(反馈、文档、GitHub、获取脚本等)保持不变。

openInCurrentTab 增加返回创建出来的标签(chrome.tabs.Tab | undefined),供 MainLayout 判断安装页是否成功打开;同步补充单元测试,并让 chrome-extension-mocktabs.create 返回 Promise 以贴近真实 MV3。

测试 / Testing

  • pnpm test 958 通过(含新增 openInCurrentTab 用例);tsc --noEmiteslint 通过。
  • 宽度媒体查询已在 Edge Android 实机确认有效。
  • ⚠️ 内部页 window.open → chrome.tabs.create 的改动建议在 Edge Android 实机再回归确认一次。

备注

本 PR 解决 #686 的「左右留白 / 点击无法打开页面」。Issue 中另提到的脚本列表行内开关/图标/标题拥挤属于行内布局 polish(ScriptMenuList 的 flex 布局),与本次根因不同,建议单独跟进。

Screenshots / 截图

两处移动端问题,根因不同分别修复:

1. popup 右侧留白:popup.html 把 html/body 宽度写死 320px。桌面端 popup
   视口宽度恒等于 body 宽度(320px),移动端被强制撑满设备宽度(≥360px),固定
   320px 导致右侧空白。改用媒体查询 @media (min-width:340px) 在移动端切换为
   width:100%、max-height:none,桌面端不命中、行为零变化。

2. 点击「设置」等打不开内部页:window.open 在 Edge Android 上无法打开
   chrome-extension:// 内部页(外部 https 网址正常)。将 6 处打开 /src/*.html
   的 window.open 改为 openInCurrentTab(chrome.tabs.create):popup 的设置/新建
   脚本、ScriptMenuList 的编辑/用户配置、MainLayout 拖拽导入、Tools 数据导入。

openInCurrentTab 增加返回创建出来的标签(chrome.tabs.Tab|undefined),供
MainLayout 判断是否成功打开;同步补充单元测试,并让 chrome-extension-mock
的 tabs.create 返回 Promise 以贴近真实 MV3。
@CodFrm CodFrm merged commit fa024d0 into main Jun 13, 2026
4 checks passed
@CodFrm CodFrm deleted the fix/686-edge-mobile-popup branch June 13, 2026 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Edge 安卓移动端适配(脚本猫界面元素错位)

1 participant