我正在构建一个可以在任何网站上集成的Web推送通知系统。我控制着这些站点,但是我正在尝试使集成尽可能简单,以便可以由我以外的其他人来完成。理想情况下,我可以给某人一个JavaScript或iframe代码即可插入,这样就可以了。
<script src="https://foreign.com/main.js" />
-或-
<iframe src="https://foreign.com/main.html" />
我首先尝试用外来脚本创建服务工作者-这引发了异常,此后我继续阅读原因。我知道为什么这行不通。
navigator.serviceWorker.register('https://foreign.com/sw.js')
因此,我尝试创建一个非常简单的页面,该页面仅运行JavaScript来设置服务工作者,然后从iframe调用该页面。这看起来确实可行-它请求许可并创建订阅。但是,如果我尝试向该订阅发送消息,则不会发生任何事情。它只是默默地失败了。为什么会这样?
答案 0 :(得分:0)
那是不可能的,这将是一个安全问题,而不是在规范中。 SW必须从相同的来源,相同的路径和https下载