我正在尝试从基于SWIFT的iOS应用程序中加载和执行WebAssembly .wasm
。我首先尝试使用JavaScriptCore框架,但是当我尝试评估琐碎脚本时,WebAssembly.*
模块在上下文中没有。我能够确认WebAssembly
不是通过Safari调试器控制台定义的。
我然后尝试使用WKWebView,因为我认为缺乏WebAssembly
是由于JSC不支持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在iOS上运行良好,目前可能适合您的需求。
目前,您无法根据此评论在模拟器上使用JSC运行WebAssembly。
看来JavaScriptCore现在有一个WebAssembly解释器,截至2020年2月。