如何解决Flutter 在移动设备上使用 Floor 缓存数据,但也想为 Web 构建
我想同时支持安卓和网络。
但是我使用 Floor 来缓存数据并且它在网络上不受支持。所以我只想在android上进行数据库调用,我不想在网络上缓存数据。我想忽略网络上的这些行。
我能以某种方式做到这一点吗?
void loadNews() async {
emit(Loading());
await newsCacheRepository.init(); //because of this line on web the data doesn't appear
var articles = await newsCacheRepository.getArticles();
emit(Loaded(articles));
refreshNews();
}
Future<void> refreshNews() async {
var articles = await newsNetworkRepository.getArticles();
emit(Loaded(articles));
newsCacheRepository.cacheArticles(articles);
}
解决方法
您也可以使用支持 Web 的 Hive。或者您可以随时检查平台:
if(!kIsWeb){
// Your code that doesn't support web
}
但为了安全起见,您可以将代码包装在 try-catch 块中。
但我更喜欢使用支持 Web 的 Hive。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。