参考: https://juejin.cn/post/7306736066361524258

问题:使用ios13+预览显示空白

使用macbook连接iPhone低版本,查看控制台报错信息

image

项目: 使用Onlyoffice预览,部署在http://192.168.1.X 服务器上,项目需要用到app.js

app.js 是 web-apps 项目经过前端构建工具(如 Webpack)处理后的“生产环境”文件

对于已经由ONLYOFFICE官方构建好、并托管在 http://192.168.1.X/.../app.js 的这个文件,你在客户端侧没有任何办法通过引入Polyfill来改变它的语法。

解决:

  1. 服务端降级:将ONLYOFFICE Document Server 从 v9.2 降级到 v7.x(如 onlyoffice/documentserver:7.5.3)。v7.x 版本生成的 app.js 文件使用的语法是 iOS 13.7 可以解析的。

  2. 用户端升级:在你的网页中部署检测代码,引导使用 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函数或对象(如 PromiseSymbolURL 构造函数)polyfill解决“API缺失”

错误信息中看到的 Unexpected token '=',很可能就源于此文件使用了类似 ??=(逻辑空赋值)、?.(可选链)或 #privateField(私有字段)等ES2020/ES2021的新语法。

Polyfill对此完全无能为力,因为它只能补充缺失的函数,无法转换语法。

 

posted on 2026-02-10 11:41  哈哈哈~_~  阅读(16)  评论(0)    收藏  举报