JavaScript(JS)是一种广泛使用的脚本语言,主要用于网页开发,增强用户界面和交互性。Swift是一种由苹果公司开发的编程语言,用于iOS、macOS、watchOS和tvOS等平台的开发。由于这两种语言运行在不同的环境中,直接从JavaScript调用Swift函数通常需要通过桥接技术实现。
以下是一个使用JavaScriptCore框架在JavaScript中调用Swift函数的示例:
import UIKit
import JavaScriptCore
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
if let webView = window?.rootViewController?.view as? WKWebView? {
let context = webView.value(forKeyPath: "documentView.webView.mainFrame.javaScriptContext") as! JSContext
let swiftObject = SwiftBridge()
context.setObject(swiftObject, forKeyedSubscript: "swiftBridge" as NSCopying & NSObjectProtocol)
}
return true
}
}
class SwiftBridge: NSObject {
@objc func greet(_ name: String, callback: JSValue) {
let greeting = "Hello, \(name)!"
callback.call(withArguments: [greeting])
}
}
swiftBridge.greet('World', function(result) {
console.log(result); // 输出: Hello, World!
});
通过上述方法,可以在JavaScript中调用Swift函数,实现跨平台的交互和功能集成。
领取专属 10元无门槛券
手把手带您无忧上云