簡體   English   中英

如何通過 WKWebVIew 或 JSC 在 iOS 應用程序中加載 WebAssembly

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM