使用 JavaScriptCore,我想将现代 Javascript 代码库的一部分集成到适用于 ios/ipados 13 的 Swift 5.x 程序中。JS代码广泛使用ES6+功能。例如:async/await
、静态导入(import * as something from “something.js”
(和动态导入('await loadedModule = import("something.js"(;
根据 2018 年的这篇文章,导入语句似乎在那个时候没有正确实现:如何在 Swift 的 JavaScriptCore 中导入模块?
(我认为复活这篇文章是不合适的,因为在这一点上已经发生了很多变化。
从那时起,JavaScriptCore 是否集成了这些功能?根据我的理解,如果它们在 Safari 浏览器中工作,那么它们也应该在独立的 JavaScriptCore 中工作(或者假设是错误的(?我认为使用 babel 或 webpack 来转换我的代码是不切实际的。
如果可能的话,我如何从 Swift 加载这种 JavaScript?
编辑:
我仍然得到JS Exception: SyntaxError: Unexpected token '*'. import call expects exactly one argument.
当我尝试以下操作时:
import * as mod from "./mod.js";
答案是否定的,但我可以使用 Babel 将静态导入/导出的文件转译为包含require
s 的代码,也可以在 Swift 中实现我自己的require
版本来模拟我想要的。