无法在 angularjs App 中配置 Firebase 云消息传递。

Posted

技术标签:

【中文标题】无法在 angularjs App 中配置 Firebase 云消息传递。【英文标题】:Unable to configure Firebase cloud messaging in angularjs App. 【发布时间】:2018-07-23 18:16:49 【问题描述】:

我已经用我的 angularjs 应用程序配置了 firebase 云消息 api。但是如 Firebase Documentation 所示。对于接收消息 firebase-messaging-sw.js 需要创建并导入脚本。 但是在 firebase-messaging-sw.js 中导入脚本时,

importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-app.js'); importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-messaging.js');

如何将这些脚本导入到 firebase-messaging-sw.js,因为这些脚本是在 index.html 文件中导入的。

错误:未定义 importScripts。 请告知如何导入此类文件,此解决方案仅适用于 chrome 或所有浏览器。

【问题讨论】:

【参考方案1】:

我想通了.. 因为只能导入这两个脚本,因为只有这两个是在 service-worker 文件中定义的。 尝试使用 service-worker,如果默认代码不能像这样锻炼:

 navigator.serviceWorker.register('/firebase-messaging-sw.js')
            .then(function (registration)
               
                var serviceWorker;
                if (registration.installing) 
                    serviceWorker = registration.installing;
                 else if (registration.waiting) 
                    serviceWorker = registration.waiting;
                 else if (registration.active) 
                    serviceWorker = registration.active;
                
                
            ).catch(function (err) 
            console.log('ServiceWorker registration failed: ', err);
        );

另外,在谷歌在Google official Doc提供的教程中,使用Server Key代替api key,否则肯定会报错。

【讨论】:

现在大多数浏览器都支持Service Worker,但首先要检查浏览器是否支持Service Worker。

以上是关于无法在 angularjs App 中配置 Firebase 云消息传递。的主要内容,如果未能解决你的问题,请参考以下文章

angularjs表单验证无法应用问题

无法在 Restangular 配置函数(AngularJs)中传递依赖项

无法使AngularJS路由工作

Angularjs templateUrl 在 Flask/python3 中无法正确呈现

在 AngularJS 控制器之间共享数据

angularjs配置路由后无法跳转