无法在 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 云消息传递。的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Restangular 配置函数(AngularJs)中传递依赖项