参考: https://juejin.cn/post/7306736066361524258
问题:使用ios13+预览显示空白
使用macbook连接iPhone低版本,查看控制台报错信息

项目: 使用Onlyoffice预览,部署在http://192.168.1.X 服务器上,项目需要用到app.js
app.js 是 web-apps 项目经过前端构建工具(如 Webpack)处理后的“生产环境”文件
对于已经由ONLYOFFICE官方构建好、并托管在 http://192.168.1.X/.../app.js 的这个文件,你在客户端侧没有任何办法通过引入Polyfill来改变它的语法。
解决:
-
服务端降级:将ONLYOFFICE Document Server 从 v9.2 降级到 v7.x(如
onlyoffice/documentserver:7.5.3)。v7.x 版本生成的app.js文件使用的语法是 iOS 13.7 可以解析的。 -
用户端升级:在你的网页中部署检测代码,引导使用 iOS 13 的用户升级他们的操作系统到 iOS 14+
ps: 使用polyfill(需源码重新构建)
在项目的polyfill.ts导入包
import 'babel-polyfill/dist/polyfill'; import 'core-js/es/reflect/own-keys'; import 'core-js/es/string/starts-with'; import 'custom-event-polyfill'; import 'core-js/stable/promise'; import 'core-js/stable/symbol'; import 'core-js/stable/string/starts-with';
所有 import 语句,都是在填补具体的JavaScript函数或对象(如 Promise, Symbol, URL 构造函数)polyfill解决“API缺失”
错误信息中看到的 Unexpected token '=',很可能就源于此文件使用了类似 ??=(逻辑空赋值)、?.(可选链)或 #privateField(私有字段)等ES2020/ES2021的新语法。
Polyfill对此完全无能为力,因为它只能补充缺失的函数,无法转换语法。
浙公网安备 33010602011771号