Closed muzuiget closed 6 months ago
现在 Dualsub v2.10.0 可以在 iOS 上运行了,通过 Orion 浏览器。
苹果这个鸡贼,小小浏览器扩展都要打包成一个 App,然后走 App Store 那一套上架流程,要交保护费,要审核,现在还要备案,我在 #445 说过不太想折腾了,需要用户自己使用 XCode 来安装到 Safari。
而 Orion 自己实现了一套 WebExtensions API,可以直接加载扩展的 .zip 文件来运行,过去我测试过运行 Dualsub 失败。最近我看了下它的更新日志,似乎兼容性有改进了,再次折腾一下,主动兼容,虽然还有点小问题,但至少能跑起来了。
Orion 是免费无内购 App,类似 Android 的 Kiwi,只是不开源,但声称计划开源,专门用来玩扩展也是挺好的,日常使用依旧可以 Safari。
在手机上使用 Dualsub,要区分两个话题:
虽然 Dualsub 在桌面浏览器里支持很多个视频网站,但是在手机浏览器上,只保证能在 https://m.youtube.com/ 上使用。
https://m.youtube.com/
即使你在手机浏览器启用“桌面模式”,也未必和真实桌面浏览器行为一致的,没有精力去测试兼容所有视频网站。
在 https://m.youtube.com/ 测试了,基本功能都能正常使用,两种模式都正常显示,和 api.dualsub.xyz 通信也没问题。
api.dualsub.xyz
Orion 只能算是模拟实现了 WebExtensions API,所以某些行为未必跟 Safari 的原生 WebExtensions API 一致,不过它现在至少实现了 Dualsub 跑起来所需的 API。
如果你遇到问题:
以下是我测试出来的一些已知问题。
Orion 的 WebExtensions API 实现问题。
刷新标签页即可。
重启整个 Orion。
iOS 自己的高贵特性,不是 bug。
iOS 的 Safari 内核不支持 Fullscreen API:
FullScreen API 即是“全屏 API",可以让视频播放器全屏时保留 HTML 实现的控制栏、进度条、字幕和弹幕等功能,如果不支持,全屏时则会被强制由系统的播放器接管,类似“画中画”,相当于把视频的投射外部播放器来播放,HTML 实现的东西被留在浏览器里面。
丢那星代代 iPhone 吹得秒天秒地,这个功能还以省电为由不实现。
绕过方法是“伪全屏“,相当于桌面浏览器按 F11 那种全屏。
在手机横屏时,Dualsub 会让播放器区域拉伸到屏幕宽度,屏幕高度则需要用户来解决,也就是隐藏地址栏和工具栏。
2023-10-28 更新: Safari 17.2 开始支持 Fullscreen API。
提供一个方式可以避免重启, 手动更改orion的UA为macos的chrome就好了
理论上改 UA 不可能改变 WebExtensions API 的行为。
现在 Dualsub v2.10.0 可以在 iOS 上运行了,通过 Orion 浏览器。
苹果这个鸡贼,小小浏览器扩展都要打包成一个 App,然后走 App Store 那一套上架流程,要交保护费,要审核,现在还要备案,我在 #445 说过不太想折腾了,需要用户自己使用 XCode 来安装到 Safari。
而 Orion 自己实现了一套 WebExtensions API,可以直接加载扩展的 .zip 文件来运行,过去我测试过运行 Dualsub 失败。最近我看了下它的更新日志,似乎兼容性有改进了,再次折腾一下,主动兼容,虽然还有点小问题,但至少能跑起来了。
安装方法
Orion 是免费无内购 App,类似 Android 的 Kiwi,只是不开源,但声称计划开源,专门用来玩扩展也是挺好的,日常使用依旧可以 Safari。
可用的功能
在手机上使用 Dualsub,要区分两个话题:
虽然 Dualsub 在桌面浏览器里支持很多个视频网站,但是在手机浏览器上,只保证能在
https://m.youtube.com/
上使用。即使你在手机浏览器启用“桌面模式”,也未必和真实桌面浏览器行为一致的,没有精力去测试兼容所有视频网站。
在
https://m.youtube.com/
测试了,基本功能都能正常使用,两种模式都正常显示,和api.dualsub.xyz
通信也没问题。已知问题
Orion 只能算是模拟实现了 WebExtensions API,所以某些行为未必跟 Safari 的原生 WebExtensions API 一致,不过它现在至少实现了 Dualsub 跑起来所需的 API。
如果你遇到问题:
以下是我测试出来的一些已知问题。
显示字幕菜单的地方为空白。
Orion 的 WebExtensions API 实现问题。
https://m.youtube.com/
,偶然出现,“重启大法“重试。扩展快速设置不能即时生效。
Orion 的 WebExtensions API 实现问题。
刷新标签页即可。
扩展全局设置不能即时生效。
Orion 的 WebExtensions API 实现问题。
重启整个 Orion。
iOS 全屏播放后字幕消失问题
iOS 自己的高贵特性,不是 bug。
iOS 的 Safari 内核不支持 Fullscreen API:
FullScreen API 即是“全屏 API",可以让视频播放器全屏时保留 HTML 实现的控制栏、进度条、字幕和弹幕等功能,如果不支持,全屏时则会被强制由系统的播放器接管,类似“画中画”,相当于把视频的投射外部播放器来播放,HTML 实现的东西被留在浏览器里面。
丢那星代代 iPhone 吹得秒天秒地,这个功能还以省电为由不实现。
绕过方法是“伪全屏“,相当于桌面浏览器按F11 那种全屏。
在手机横屏时,Dualsub 会让播放器区域拉伸到屏幕宽度,屏幕高度则需要用户来解决,也就是隐藏地址栏和工具栏。
2023-10-28 更新: Safari 17.2 开始支持 Fullscreen API。