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



我正在尝试从基于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月。

相关内容

  • 没有找到相关文章

最新更新