我正在使用FCM来接收Web上的推送通知。我搜索到Safari桌面和iOS浏览器不支持此功能,因此这就是我在其上出现空白屏幕的原因。
app.module.ts:
import { AngularFireModule } from '@angular/fire';
import { AsyncPipe } from '../../node_modules/@angular/common';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
export const firebaseConfig = {
apiKey: "---",
authDomain: "---",
databaseURL: "---",
projectId: "---",
storageBucket: "----",
messagingSenderId: "-----"
}
@NgModule({
declarations: [
AppComponent,
],
imports: [
BrowserModule,
BrowserAnimationsModule,
AppRoutingModule,
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }),
AngularFireModule.initializeApp(firebaseConfig),
AngularFireDatabaseModule,
BrowserAnimationsModule,
],
providers: [MessagingService,AsyncPipe],
bootstrap: [AppComponent],
firebase-messaging-sw.js
importScripts('https://www.gstatic.com/firebasejs/5.5.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/5.5.0/firebase-messaging.js');
if(firebase.messaging.isSupported())
{
var config = {
messagingSenderId: "----"
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
}
问题似乎是导入中Firebase的初始化,因为在控制台上出现Firebase SDK不支持的错误。
如果我从导入中删除了Firebase初始化并将其留在Service Worker中,则会出现控制台错误。
如果我在导入中添加了firebase的初始化,则应用程序和推送通知可以正常工作,但是在Safari桌面和所有iOS浏览器上却出现空白页。
是否有任何方法可以在初始化之前将条件放入导入中,或采取其他任何方法来避免此空白页错误?