规则:页面可见时失焦,就判定为原生面板盖住了页面(很可能是展开的分享面板)。之后焦点回来、期间没进后台,判定为取消返回。失焦后进了后台,判定为可能点了「添加」或切走了 App。直接点「分享」不展开时,应该不会触发推断,正好用来验证这一点。
标记只是在日志里插一条分隔线,用来把操作分段。打开菜单后页面一般点不到,所以要先标记再操作。
没有官方 API,这里把可能的路径逐个试一遍。每试完一个,底部会弹出问题让你记录面板里有没有「添加到主屏幕」,结果会进「复制结果」。
对比 Safari 自己的分享面板:看面板底部的操作列表(View More 展开后)有没有 Add to Home Screen / Add Bookmark / Find on Page 这些 Safari 专属项。
长按后在菜单里选「分享…」,打开的是 Safari 自己的分享面板,但分享对象换成了这个链接。
流程:点「允许」下载 → 打开「设置」→ 顶部「已下载描述文件」→ 安装(需输入锁屏密码)→ 主屏幕出现图标 → 点图标打开,「安装 / 独立模式验证」会显示 via=mobileconfig。这条路肯定能装上,但描述文件没签名,会显示「未验证」,而且步骤比 Safari 自带的还多。测完可以在「设置 → 通用 → VPN 与设备管理」里删掉。
把链接发到微信或 QQ,在内置浏览器里点这个按钮,看能不能直接跳到 Safari。在 Safari 里点没有意义。
按出现先后排序;@+3.2s = 标记后 3.2 秒第一次出现。红色是「页面被盖住/失焦」类信号,灰色多半是滚动、工具栏伸缩带来的噪音(pointercancel 在手指开始滚动时也会触发)。
这些是确定会盖住页面的原生 UI。每个按钮会先自动插入标记,再触发。
「新开标签页」会留下一个空白页,需要手动关掉再回来。「文件选择菜单」在 iOS 上弹出的菜单和 Safari 的「…」菜单是同一类原生菜单,可以重点对比。
v2 只能发现页面里其他 DOM 元素造成的遮挡。可以在打开 Safari 菜单前后对比 isVisible 有没有变化(Safari 不支持的话一直是「不支持」)。
分别在 Safari 设置里切换「紧凑 / 底部 / 顶部」标签栏布局后刷新,看这些数值能不能区分布局。