该应用程序是一个简单的新闻阅读器,显示WordPress文章,没有花哨的东西,不使用BLOC、继承的Widget或Firebase。我希望它能够在用户离线时显示缓存数据(即最新的10篇文章)。
因此,如果用户离线,则显示缓存数据;或者以某种方式将默认数据作为缓存数据。
从WP REST API获取第一篇文章的ID,如果缓存的JSON文件包含Post [id],则显示缓存数据;否则,获取文章并显示加载指示器。还请更新本地JSON文件。
获取JSON数据的代码:
因此,如果用户离线,则显示缓存数据;或者以某种方式将默认数据作为缓存数据。
从WP REST API获取第一篇文章的ID,如果缓存的JSON文件包含Post [id],则显示缓存数据;否则,获取文章并显示加载指示器。还请更新本地JSON文件。
获取JSON数据的代码:
// Function to fetch list of posts
Future<String> getPosts() async {
var res = await http
.get(Uri.encodeFull(apiUrl + "posts?_embed&per_page=10"), //TODO make it unlimited
headers: {"Accept": "application/json"});
setState(() {
var resBody = json.decode(res.body);
posts = resBody;
});
return "Success!";
}
未来获取帖子和节目的载入指示器:
body: FutureBuilder<List<String>>(
future: getPosts(),
builder: (context, snapshot) {
if (snapshot.hasError) print(snapshot.error);
return snapshot.hasData
? ListViewPosts(posts: snapshot.data)
: Center(child: CircularProgressIndicator());
},
),
LruMap
可能是什么? - pskink