Ionic worker 在 ios 11 上的 wkwebview 上的创建:SecurityError(DOM 异常 18):操作不安全

Ionic worker's creation on wkwebview on ios 11: SecurityError (DOM Exception 18): The operation is insecure

我正面临 SecurityError(DOM 异常 18):操作不安全。有很多问题与“到dom安全异常”相关,但none符合我的需要。

首先, 由于 ,我在 IOS 11.0.3 中遇到了下拉列表问题。我找到了解决它的方法。

但是现在,当我尝试创建一个 worker 时,出现了安全错误(DOM 异常 18)。 我这样做时发生了异常:

var pdfWorkerBlob = new Worker('scripts/pdfmake-worker-blob.js');

顺便说一下,它是我们使用 pdfmakejs 打印 pdf 的工作程序。在我使用 cordova-plugin-wkwebview-engine 我使用的是 ionic 之前,这条线工作正常。以下命令的结果是:

ionic info 
cli packages: (/usr/local/lib/node_modules)

    @ionic/cli-plugin-proxy : 1.5.8
    @ionic/cli-utils        : 1.19.2
    ionic (Ionic CLI)       : 3.20.0

System:

    Node : v8.7.0
    npm  : 5.7.1
    OS   : macOS High Sierra

这里是异常的截图

我确实找到了解决问题的方法。

如果您遇到的不是离子问题。 最好的方法似乎是你必须部署一个轻型 local webserver 来服务 你的脚本。

Caddy 可以成为一个很好的工具。 顺便感谢@Matt(Matt Holt)。这个解决方案是他在 topic on github 中提出的,它启发了我的解决方案。

话虽如此,因为我们正在使用 ionic。我们已经有一个可以为脚本提供服务的本地 Web 服务器。

首先我得到应用程序url:

var rootUrl=document.URL.split('#')[0];

然后我可以像这样创建我的 worker :

pdfmakeWorkerBlob = new Worker(rootUrl+'scripts/pdfmake-worker-blob.js');

不再有 dom 异常安全问题。

对于那些不熟悉网络工作者的人来说,这page是一个很好的开始