Flutter Beyaz Ekran Hatası
Flutter ile hazırladığım webview projemde web sitemdeki yerel bildirimlerin çalışmasını sağlayan özel bir çalışma yaptım.
main.dart dosyasına eklediğim küçük bir komutla kullanıcıların id'lerini veritabanıma yazdırabiliyorum.
Ancak uygulamamda 'Beyaz Ekran' sorunu görünmeye başlıyor.
Uygulama ilk açıldığında açılış ekranı geliyor ardından beyaz ekran geliyor, beyaz ekranı geçmiyor ve takılı kalıyor.
Uygulama bu sorunu yalnızca kurulumdan sonraki ilk çalıştırmada gösteriyor, bir kez kapatılıp açıldığında, bu sorun bir daha asla olmuyor.
Bazı denemelerde takılı kalan beyaz ekranın üstesinden geldim ama bu sefer bildirimler çalışmıyor.
Önerileriniz nelerdir? Bu sorunu nasıl çözebilirim?
Söz konusu kod (main.dart dosyasında):
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// await FlutterDownloader.initialize(debug: true);
HttpOverrides.global = HttpOverridesSkipCertificate();
await initialize();
appStore.setDarkMode(aIsDarkMode: getBoolAsync(isDarkModeOnPref));
appStore.setLanguage(getStringAsync(APP_LANGUAGE, defaultValue: 'en'));
var token = '';
SharedPreferences prefs;
if (isMobile) {
prefs = await SharedPreferences.getInstance();
MobileAds.instance.initialize();
await OneSignal.shared
.setAppId(getStringAsync(ONESINGLE, defaultValue: mOneSignalID));
OneSignal.shared.consentGranted(true);
OneSignal.shared.promptUserForPushNotificationPermission();
OneSignal.shared
.setSubscriptionObserver((OSSubscriptionStateChanges changes) async {
if (changes.to.userId.toString() != '') {
token = changes.to.userId!;
print("ilkToken: " + token);
if (token != null) await prefs.setString('token', token);
}
});
var status = await OneSignal.shared.getDeviceState();
token = status!.userId!;
if (token != null) await prefs.setString('token', token);
}
runApp(MyApp());
}
Bu şekilde değiştirdiğimde 'Beyaz Ekran' sorununu aşıyorum ancak bildirimler çalışmıyor:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// await FlutterDownloader.initialize(debug: true);
HttpOverrides.global = HttpOverridesSkipCertificate();
await initialize();
appStore.setDarkMode(aIsDarkMode: getBoolAsync(isDarkModeOnPref));
appStore.setLanguage(getStringAsync(APP_LANGUAGE, defaultValue: 'en'));
var token = '';
SharedPreferences prefs;
if (isMobile) {
prefs = await SharedPreferences.getInstance();
MobileAds.instance.initialize();
await OneSignal.shared
.setAppId(getStringAsync(ONESINGLE, defaultValue: mOneSignalID));
OneSignal.shared.consentGranted(true);
OneSignal.shared.promptUserForPushNotificationPermission();
OneSignal.shared
.setSubscriptionObserver((OSSubscriptionStateChanges changes) async {
if (changes.to.userId!=null && changes.to.userId.toString() != '') {
token = changes.to.userId!;
if (token != null) await prefs.setString('token', token);
}
});
var status = await OneSignal.shared.getDeviceState();
if(status!.userId!=null){
token = status.userId!;
if (token != null) await prefs.setString('token', token);
}
}
runApp(MyApp());
}