WKWebView 网络工作者抛出错误 "Dom Exception 18 returns an error."

WKWebView web worker throws error "Dom Exception 18 returns an error."

我正在使用 PhoneGap 编写应用程序。我想使用 javascript Web Worker。它在 Android 上运行良好。它也适用于 iOS with UIWebView.

我想在 iOS 9 中使用 WKWebView。我尝试使用 cordova-plugin-file 成功读取本地文件夹中的 .txt 文件。

我使用了以下教程: https://www.scirra.com/blog/ashley/25/hacking-something-useful-out-of-wkwebview

但这并没有解决...

new Worker ('js/tested.js');
Dom Exception 18 returns an error.
new Worker ('www/js/tested.js');
Dom Exception 18 returns an error.

我试图指定 worker javascript 文件的完整路径,但我得到了同样的错误:

new Worker (file_path+'js/tested.js');
Dom Exception 18 returns an error.

那么如何创建worker呢?

成功了!

Web workers without a separate Javascript file?

        var worker_js = null;

        function fetchLocalFileViaCordova(filename, successCallback, errorCallback)
        {
            var path = cordova.file.applicationDirectory + "www/" + filename;

            window.resolveLocalFileSystemURL(path, function (entry)
            {
                entry.file(successCallback, errorCallback);
            }, errorCallback);
        };

        function fetchLocalFileViaCordovaAsText(filename, successCallback, errorCallback)
        {
            fetchLocalFileViaCordova(filename, function (file)
            {
                var reader = new FileReader();

                reader.onload = function (e)
                {
                    successCallback(e.target.result);
                };

                reader.onerror = errorCallback;
                reader.readAsText(file);

            }, errorCallback);
        };

        fetchLocalFileViaCordovaAsText("js/worker.js", function (js_script) { // Worker WKWebView
            worker_js = window.URL.createObjectURL(
                new Blob([js_script], { type: "text/javascript" })
            );
        });

        if (worker_js != null) {
            backgroundEngine = new Worker(worker_js);
        } else {
            backgroundEngine = new Worker("js/worker.js");
        }