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

问题描述 投票:0回答:1

我正在寻找在本机 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 代码?

ios swift typescript wkwebview jscontext
1个回答
2
投票

TypeScript 需要编译成 JavaScript。浏览器不直接支持 TypeScript。所以不,你不能直接在

JSContext
WKWebView
中运行 TypeScript。

© www.soinside.com 2019 - 2024. All rights reserved.