ServiceWorker openWindow()返回InvalidAccessError

时间:2018-12-12 16:38:42

标签: javascript typescript google-chrome service-worker

我正在使用ServiceWorker打开一个新窗口(这里的想法是我们有很多模态,我们试图在单个连接上使用浮动窗口)。到目前为止还不错,但是我似乎无法打开浮动窗口。我不断收到InvalidAccessError

文档说: 如果调用脚本没有显示弹出窗口的权限,则openWindow()将抛出InvalidAccessError

使用Chrome 71

this.workerContextServiceWorker

private onPopOutRequest(clientId: string, message: any) {
        this.logMessage(`Client (${clientId}) requested PopOut.`);

        this.workerContext.clients.openWindow(window.location.toString()).then(windowClient => {
            //do stuff
        }).catch(err => {
            console.log(err.message);
        });
}

上面的代码从handleRequest()函数中调用,该函数基本上只是用于不同消息的大switch语句。这是从事件侦听器调用的:

self.addEventListener("message", (event: any) => {
    if(event)
        sw.handleMessage(event);
});

sw在哪里...

var sw = new SharedDataWorker(self);

SharedDataWorkerServiceWorker。我们已经添加了一些自定义行为,因此更改了名称。

我觉得这里缺少重要的一步。任何帮助表示赞赏。谢谢!

0 个答案:

没有答案