kem*_*ica 9 html javascript android webview ios
随着同步 的快速移除XMLHttpRequest(即:Chrome 88 正在移除它),我正在寻找下一个预缓存视频的最佳替代方法。
“同步 XMLHttpRequest 是一个可怕的想法” - 从来没有人说过
是的,您适合大多数情况,但这是不同的。
在android和ios 上,我工作的公司有一个 SDK,可以在后台打开webview,将 HTML 注入其中并等待onload事件触发。当 webview 准备好向用户显示时,这会通知 SDK。
这是必要的,当视频播放有NO缓冲任何可能的最佳体验。
这就是为什么当 webview 在后台加载时,我们使用 XMLHttpRequest 同步预缓存视频(因此,延迟onload事件被触发)。
我们考虑了一些不同的解决方案,它们各有优缺点;这里有一些:
<link rel="preload" ... />index.htmlbase64页面内(如果视频重量为2-3Mo,则转换为base64后重量会增加30%)(1) 是最干净的方法,但由于各种原因需要对我们的后端进行一些重大更改。也不保证在浏览器/网络视图出现时视频将被完全缓存。不能保证预缓存的优先级在 web 视图和移动浏览器中是相同的。用户可以停用预缓存功能,例如,在他们的 Chrome 配置中。当连接为 4G 或更低时,它也不起作用(叹气)。
(2) 是一种笨拙且未经优化的方法,但与 (1) 相比,实施起来相对简单
在 webview/移动浏览器的后台预缓存视频的下一个最佳方法是什么:
onload事件被触发注意:并非所有用户都有 4g 或 wifi 连接。 注2:标签处于自动播放状态
新的解决方案是使用Cache API
caches = window.caches;
caches.open("app-assets").then((cache) => {
cache.add(linkToFileToBeCached).then(() => {
// Now the file is cached. Start rendering the app!
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |