我正在開發一個顫振應用程式,我想更新頁面的小部件而不在 Play 商店上推送新的更新。我對這個主題進行了一些研究,發現我可以使用 firebase 遠程配置。我的想法是使用 firebase 遠程配置來獲取小部件并將它們顯示在應用程式上,這樣我就不需要為小的更改發布頻繁的更新。
例如,以下代碼用于顯示圓形加載條:
import 'package:flutter/material.dart';
class LoadingWidget extends StatelessWidget {
const LoadingWidget({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
alignment: Alignment.center,
child: const CircularProgressIndicator(
color: Colors.black,
),
);
}
}
但現在即使是最小的變化,比如顏色、對齊或大小的變化,我需要將新的更新推送到 Play 商店,用戶需要安裝新的更新以反映這些變化。
我想將顫振小部件存盤在 firebase 遠程配置(JSON 格式)中,然后在應用程式中,它將從遠程配置中獲取 JSON 資料并顯示新的更改。
uj5u.com熱心網友回復:
一旦您的 RemoteConfig,您需要添加鍵值對以滿足您的需求:
key : value
color : black
然后取值:
myRemoteColor = remoteConfig.getString('color')
現在,您myRemoteColor有一個帶有 value 的字串black。
uj5u.com熱心網友回復:
既然您已經知道 Remote Config 只存盤原始值,那么問題就變成了如何將 Flutter 小部件編碼和解碼為字串。
我懷疑這會很簡單,因為這意味著您的應用程式需要將 JSON/字串編譯成二進制檔案。你實際上是在為你的遠程客戶端實作類似于 Flutter 的 Hot Reload 的東西,這很酷但不是內置功能。
更可行的是控制代碼中已有的特定小部件,例如Rubens 回答。在最近的一個示例應用程式中,我使用遠程配置來啟用/禁用新功能(稱為功能標記的程序):
class _MyHomePageState extends State<MyHomePage> {
final FirebaseRemoteConfig remoteConfig;
_MyHomePageState(this.remoteConfig);
@override
Widget build(BuildContext context) {
return MaterialApp(
home: DefaultTabController(
length: remoteConfig.getBool("chat_enabled") ? 3 : 2,
child: Scaffold(
appBar: AppBar(
bottom: TabBar(
tabs: [
const Tab(icon: Icon(Icons.games_outlined)),
const Tab(icon: Icon(Icons.swap_vert_circle_outlined)),
if (remoteConfig.getBool("chat_enabled")) const Tab(icon: Icon(Icons.chat_bubble_outlined)),
],
),
title: Text(widget.title),
),
body: TabBarView(
children: [
const MyGame(key: Key('game')),
const Leaderboard(key: Key('leaderboard')),
if (remoteConfig.getBool("chat_enabled")) const Messageboard(key: Key('messageboard')),
],
),
),
),
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/441456.html
