我正在尝试加载和执行 WebAssembly .wasm
来自基于 Swift 的 iOS 应用程序。我第一次尝试使用 JavaScriptCore Framework但是 WebAssembly.*
当我尝试评估一个简单的脚本时,模块在上下文中不可用。我能够确认 WebAssembly
不是通过 Safari 调试器控制台定义的。
然后我尝试使用 WKWebView,因为我被引导相信缺少 WebAssembly
由于JSC not supporting JIT,WKWebView 应该这样做。我得到了同样的结果。
这是一个在 iPhone X 12.4 模拟器、Xcode 10.3 和手动添加到项目中的 WebKit 框架上运行的简单应用程序。确保打开 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 ,并且可能满足您目前的需求。
目前您无法在模拟器上使用 JSC 运行 WebAssembly according to this comment .
关于ios - 如何通过 WKWebVIew 或 JSC 在 iOS 应用程序中加载 WebAssembly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57348813/