muzuiget / dualsub-support

Dualsub - Dual Subtitles for YouTube
https://www.dualsub.xyz/
277 stars 23 forks source link

测试在 iOS 上用 Orion 浏览器侧载运行 #552

Closed muzuiget closed 6 months ago

muzuiget commented 11 months ago

现在 Dualsub v2.10.0 可以在 iOS 上运行了,通过 Orion 浏览器。

苹果这个鸡贼,小小浏览器扩展都要打包成一个 App,然后走 App Store 那一套上架流程,要交保护费,要审核,现在还要备案,我在 #445 说过不太想折腾了,需要用户自己使用 XCode 来安装到 Safari。

而 Orion 自己实现了一套 WebExtensions API,可以直接加载扩展的 .zip 文件来运行,过去我测试过运行 Dualsub 失败。最近我看了下它的更新日志,似乎兼容性有改进了,再次折腾一下,主动兼容,虽然还有点小问题,但至少能跑起来了。

安装方法

Orion 是免费无内购 App,类似 Android 的 Kiwi,只是不开源,但声称计划开源,专门用来玩扩展也是挺好的,日常使用依旧可以 Safari。

  1. 安装 Orion,可以用 Safari 打开这个地址来跳转到 App Store。
  2. 打开 Orion 设置,在 扩展 分组里,勾选 允许安装第三方 Chrome 扩展程序 选项。
  3. 安装 Dualsub,在 Orion 打开 Dualsub 的 Chrome Web Store 页面安装。

可用的功能

在手机上使用 Dualsub,要区分两个话题:

  1. 手机浏览器成功运行 Dualsub 扩展本身。
  2. 视频网站支持网页版,在网页里播放视频,而不是强推 App。

虽然 Dualsub 在桌面浏览器里支持很多个视频网站,但是在手机浏览器上,只保证能在 https://m.youtube.com/ 上使用。

即使你在手机浏览器启用“桌面模式”,也未必和真实桌面浏览器行为一致的,没有精力去测试兼容所有视频网站。

https://m.youtube.com/ 测试了,基本功能都能正常使用,两种模式都正常显示,和 api.dualsub.xyz 通信也没问题。

已知问题

Orion 只能算是模拟实现了 WebExtensions API,所以某些行为未必跟 Safari 的原生 WebExtensions API 一致,不过它现在至少实现了 Dualsub 跑起来所需的 API。

如果你遇到问题:

  1. 确定对应的功能在桌面版的 Chrome 上是正常的。
  2. “重启大法“重试:刷新标签页、重新创建标签页,重启整个 App。

以下是我测试出来的一些已知问题。

显示字幕菜单的地方为空白。

Orion 的 WebExtensions API 实现问题。

扩展快速设置不能即时生效。

Orion 的 WebExtensions API 实现问题。

刷新标签页即可。

扩展全局设置不能即时生效。

Orion 的 WebExtensions API 实现问题。

重启整个 Orion。

iOS 全屏播放后字幕消失问题

iOS 自己的高贵特性,不是 bug。

iOS 的 Safari 内核不支持 Fullscreen API

Screenshot_20231002_215506

FullScreen API 即是“全屏 API",可以让视频播放器全屏时保留 HTML 实现的控制栏、进度条、字幕和弹幕等功能,如果不支持,全屏时则会被强制由系统的播放器接管,类似“画中画”,相当于把视频的投射外部播放器来播放,HTML 实现的东西被留在浏览器里面。

丢那星代代 iPhone 吹得秒天秒地,这个功能还以省电为由不实现。

绕过方法是“伪全屏“,相当于桌面浏览器按 F11 那种全屏。

在手机横屏时,Dualsub 会让播放器区域拉伸到屏幕宽度,屏幕高度则需要用户来解决,也就是隐藏地址栏和工具栏。

  1. 在 Orion 设置里,在“外观”里取消”滚动时隐藏工具栏“。
  2. 横屏手机后,点击地址栏上的网站图标,选择”隐藏工具栏“。
  3. 滚动一下页面,让播放器区域对齐屏幕顶部。

2023-10-28 更新: Safari 17.2 开始支持 Fullscreen API

Screenshot_20231028_070034

NingJay commented 11 months ago

提供一个方式可以避免重启, 手动更改orion的UA为macos的chrome就好了

muzuiget commented 11 months ago

理论上改 UA 不可能改变 WebExtensions API 的行为。