我正在尝试从基于Swift的iOS应用程序中加载和执行WebAssembly .wasm
。我首先尝试使用JavaScriptCore Framework,但是当我尝试评估一个琐碎的脚本时,WebAssembly.*
模块在上下文中不可用。我能够通过Safari调试器控制台确认WebAssembly
未定义。
然后,我试图使用WKWebView,因为我被认为缺乏WebAssembly
是由于JSC not supporting JIT引起的,WKWebView应该这样做。我得到了相同的结果。
这里是在iPhone X 12.4模拟器,Xcode 10.3和WebKit Framework手动添加到项目中运行的简单应用程序。确保打开Safari并为WKWebView调试器选择“开发人员>模拟器”。
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func onClick(_ sender: UIButton) {
let testWasm = """
if(typeof WebAssembly !== 'undefined') {
console.log("Hello, Wasm.");
} else {
console.log("No Wasm for you!");
}
"""
webView.evaluateJavaScript(testWasm)
}
}
iOS实际上有办法将WebAssembly加载到基于Swift的应用程序中吗?
我想与JSC进行一些基准测试以将其与Wasm3进行比较。基本上我遇到了同样的情况,到目前为止还无法解决。
Wasm3 runs perfectly fine on iOS,目前可能适合您的需求。