flutter 一些设备需要清除所有应用程序数据,而另一些则不需要

eulz3vhy  于 2023-01-31  发布在  Flutter
关注(0)|答案(2)|浏览(105)

最近我发布了我的移动的应用程序,但有一个独特的问题。在一些设备中,人们在Google Play下载应用程序,并很容易使用该应用程序。但有些设备需要清除设置中的所有应用程序数据,然后再次打开,因为如果他们不这样做,他们就看不到入职屏幕,也不能从互联网上获取数据。在flutter中,我基本上使用主dart上的Hive本地存储来在安装后进行路由

//Here if onBoard box is true user will see welcomescreen
if (Hive.box('settings').get('onBoard') == true) {
screen = const WelcomeScreen();
}
//Here if user already registered but click sign out button isRegistered box will be false and user
//will go LoginPage again

else if(Hive.box('settings').get('isRegistered') == false){
screen = const LoginPageDesign();
}
//! If on boarding not true (false or null) user will route OnBoarding page
else {
screen = const OnBoarding();
}
mbjcgjjk

mbjcgjjk1#

问题是一些安卓设备会将本地存储数据备份到云端,你可以从安卓浏览这篇文章:https://developer.android.com/guide/topics/data/autobackup.html
因此,要克服这个问题,只需导航到您的AndroidManifest并在应用程序标签下执行以下操作:

<application
...
android:allowBackup="false"
android:fullBackupContent="false"
tools:replace="android:allowBackup"
...
</application>
toiithl6

toiithl62#

switch(Hive.box('settings').get('isRegistered')){
  
  case null:
  screen = const OnBoarding();
  break;

  case false:
  screen = const LoginPageDesign();
  break;

  case true:
  screen = const WelcomeScreen();
  break;

}
有趣的是,一旦我测试了内部测试,Android 13真实的的设备没有问题,它首先在Boaring上,但与Android 10它直接去WelcomeScreen我不明白怎么可能采取这种情况下应该总是在新的开始空.
编辑:添加另一个www.example.com进行注册后,问题得到了有趣的修复Hive.box...

相关问题