可以在iOS JSContext或WKWebView中运行TypeScript代码吗?

brc7rcf0  于 2023-05-19  发布在  TypeScript
关注(0)|答案(1)|浏览(163)

我正在寻找在用Swift编写的原生iOS应用程序中包含共享跨平台库的方法。我的重点是JavaScript和Typescript源代码。
我做了一个playground项目,它将一个js文件加载到JSContext(JavaScriptCore框架内置的一部分)中,然后我可以从原生Swift代码调用JavaSript函数:

let jsContext = JSContext()
let jsURL = Bundle.main.url(forResource: "shared-lib", withExtension: "js")!
let jsScript = try String(contentsOf: jsURL, encoding: .utf8)
jsContext.evaluateScript(jsScript)

jsContext.setObject(
    param1,
    forKeyedSubscript: NSString(string: "param1")
)

jsContext.setObject(
    param2,
    forKeyedSubscript: NSString(string: "param2")
)

let resultJSValue = jsContext.evaluateScript("""
    calculate(param1, param2);
""")

我也可以在WKWebView(WebKit框架的一部分)中执行js代码,并从中获得结果。
但是当我试图从TypeScript文件执行一个简单的函数时,结果在JSContext和WKWebView中都是undefined
是否可以在JSContext或WKWebView中运行TypeScript代码?

3phpmpom

3phpmpom1#

TypeScript需要编译成JavaScript。浏览器不直接支持TypeScript。因此,不能直接在JSContextWKWebView中运行TypeScript。

相关问题