在 swift 中使用 JavaScriptCore 来调用 JavaScript 文件里的函数(编程语言间的 api 调用)
时间:2021-6-8 21:44 作者:独元殇 分类: 前端技术
平时,我做的应用大多是 web 平台的,有时想做些小工具,可惜自己时间和脑容量有限。总想少学点东西或学些性价比大的东西,以便一次编写能在尽可能多的平台运行。
于是,我想,能否这样 ---- 我只学习关键 GUI 部分的内容,核心逻辑就交给另一门语言,于是我就问 chatgpt ,这个方式可行吗?
回复是行。
在 mac 上开发应用,最好的莫过于 swift,但学一门语言成本很大,之后咨询了 chatgpt ,说 C++ JavaScript 等等都能间接被 swift 调用,哇,这是福音!
赶紧尝试一番!没想到一个小小的 demo 成功了。两个关键的文件如下:
// 这是 test.js
function helloWorld() {
return "hello world!!!";
}
// 这是 ContentView.swift
import JavaScriptCore
import SwiftUI
struct ContentView: View {
var body: some View {
let context = JSContext()
Button(action: {
let url = Bundle.main.url(forResource: "test", withExtension: "js")
let script = try! String(contentsOf: url!)
context?.evaluateScript(script)
let result = context?.evaluateScript("helloWorld()")?.toString()
print(result)
}) {
Text("Run JavaScript function")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
虽然例子没有体现在 gui 界面上,但理论当然可行的。在控制台输 JavaScript 函数的场景让我无比兴奋,我等后再查看一些 android、Windows 两个平台的相关方法,如果都可行,那...... 哇塞!
2023-06-08 21:46:31 星期四
标签: 原创 swift JavaScript