ios - 如何通过 WKWebVIew 或 JSC 在 iOS 应用程序中加载 WebAssembly

标签 ios swift wkwebview webassembly javascriptcore

我正在尝试加载和执行 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/

相关文章:

ios - vue.js在wkwebview上是否正常工作

javascript - WKWebView中使用scrollIntoVIew跳转到页面顶部

ios - 有没有更好的方法来观察键值变化?

ios - 在动画过程中改变位置?

ios - UITableView subview 不包含 UITableViewWrapperView iOS 11

ios - 在 WKwebView 中访问 DOM 元素

ios - 尝试使用以编程方式创建的图像为 UIImageView 设置动画时抛出错误

ios - 你如何不断地在后台运行?

swift - 作为静态变量的类名

ios - UITableView 快速返回空单元格