我正在使用 firebase 進行推送通知。為此,我正在關注一個教程,他們指出,Firebase.initializeApp();必須在runApp(MyApp());. 推送通知方案作業正常,但問題是,如果沒有互聯網連接,應用程式會卡在啟影片面中。現在我想知道,是否有任何標準程式可以警告用戶之前沒有互聯網連接runApp(MyApp());?或者規則'Firebase.initializeApp();必須在runApp(MyApp());'之前宣告'我知道是錯誤的?或者我錯過了一些標準程式?
我的代碼場景 -
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
try {
await Firebase.initializeApp();
} on SocketException {
print('socket exception');
}
FirebaseMessaging.onBackgroundMessage(_firebaseMessegingBackgroundHandler);
await FirebaseMessaging.instance.subscribeToTopic('all');
// await FirebaseMessaging.instance.subscribeToTopic('fluttertest');
// runApp(MyApp());
await SentryFlutter.init(
(options) {
options.dsn =
'',
options.tracesSampleRate = 1.0;
},
appRunner: () => runApp(MyApp()),
);
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle.dark.copyWith(
systemNavigationBarColor: GlobalColor.primaryTitle,
statusBarColor: GlobalColor.statusBarColor,
),
);
await flutterLocalNotificationsPlugin
.resolvePlatformSpecificImplementation<
AndroidFlutterLocalNotificationsPlugin>()
.createNotificationChannel(channel);
await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(
alert: true,
badge: true,
sound: true,
);
}
請注意,我知道如何檢查連接狀態,我的目標是如何使用 firebase 實作這一點!
uj5u.com熱心網友回復:
我的猜測是在await FirebaseMessaging.instance.subscribeToTopic('all')有互聯網連接之前呼叫不會成功。
如果您希望在連接可用時完成訂閱,但在此之前繼續正常使用該應用程式:await從該呼叫中洗掉。
如果您希望在現在沒有互聯網連接的情況下以后甚至不嘗試訂閱,請檢測是否有互聯網連接(以您已經說過的方式),并在subscribeToTopic沒有互聯網連接時跳過呼叫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/362042.html
標籤:火力基地 扑 firebase-cloud-消息 连通性
下一篇:單擊另一個按鈕時如何切換按鈕?
