如何通过WKWebVIew或JSC在iOS应用中加载WebAssembly

问题描述 投票:0回答:1

我正在尝试从基于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的应用程序中吗?

ios swift wkwebview webassembly javascriptcore
1个回答
0
投票

我想与JSC进行一些基准测试以将其与Wasm3进行比较。基本上我遇到了同样的情况,到目前为止还无法解决。

Wasm3 runs perfectly fine on iOS,目前可能适合您的需求。

© www.soinside.com 2019 - 2024. All rights reserved.