[英]How to load WebAssembly in iOS app via WKWebVIew or JSC
我正在嘗試從基於 Swift 的 iOS 應用程序中加載和執行 WebAssembly .wasm
。 我首先嘗試使用JavaScriptCore 框架,但是當我嘗試評估一個簡單的腳本時, WebAssembly.*
模塊在上下文中不可用。 我能夠確認WebAssembly
不是通過 Safari 調試器控制台定義的。
然后我嘗試使用 WKWebView,因為我相信缺少WebAssembly
是由於JSC 不支持WKWebView 應該支持的JIT。 我得到了同樣的結果。
這是一個在 iPhone X 12.4 模擬器、Xcode 10.3 和手動添加到項目中的 WebKit 框架上運行的簡單應用程序。 確保打開 Safari 並為 WKWebView 調試器選擇“Developer>Simulator”。
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。
從 2020 年 2 月開始, JavaScriptCore 現在似乎有了一個 WebAssembly 解釋器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.