最近發現AGC上部分服務開始支持第三方框架了,其中包括Flutter,所以就小試牛刀試着在遠程配置上實驗了一把。
集成步驟
- 安裝flutter環境
a) 下載Flutter sdk包,地址:https://flutter.dev/docs/get-started/install/windows。
將壓縮包解壓到任意文件夾,例如D:\Flutter
b) 將Flutter添加到環境變量中,此處我添加的Path為D:\Flutter\flutter_windows_1.22.2-stable\flutter\bin。
c) 在Android Studio中點擊“File-Settings-Plugins”,下載Flutter和Dart插件,重啟Android Studio使插件生效。
- 開通服務&創建工程
a) 在AGC創建Android項目並開通遠程配置服務。
b) 在遠程配置中添加如下配置項。
c) 在Android Studio中點擊“File-New-New Flutter Project…”,新建Flutter工程。
d) 在AGC“項目設置”頁面,找到應用菜單下載agconnect-services.json文件。
e) 將agconnect-services.json文件放入如下圖目錄中的位置。
f) 在應用級build.gradle文件中作如下maven倉和遠程配置插件配置。
g) 打開Flutter項目android/app文件夾下的build.gradle文件,添加編譯依賴和AGC插件地址。
- 集成SDK
在pubspec.yaml文件中添加遠程配置的pub依賴
然后點擊Pub get進行同步
- 基本功能
這里我實現了一個簡單的demo應用以演示幾個最主要的功能。
UI設計中,有描述為“Mode 1:Fetch And Activate Immediately”、“Mode 2:Fetch And Activate Next Time”、“Clear Data”三個按鈕,可以實現如下的主要功能。
a)獲取雲端數據,本次生效
點擊“Mode 1:Fetch And Activate Immediately”按鈕,調用fetch后直接調用applyLastFetched來獲取本次fetch到的數據。由於是立即生效,所以我們調用getMergedAll接口來將所有配置應用到本地,我們在手機上就能獲取到雲端的數據,點擊效果如下:
b)獲取雲端數據,生效上次獲取的配置
延遲生效的實現接口與立刻生效相同,只不過順序不同:
點擊“Mode 2:Fetch And Activate Next Time”按鈕,會先apply和getMergedAll來應用上一次fetch的結果,再調用fetch來獲取最新配置以供下次使用。
c) 清除數據
如果想要清除數據,只要點擊“Clear Data”,調用clearAll接口就可以了。
d) 設置本地配置項
我們可以通過在dart文件中新建一個Map類型的參數,然后調用applyDefault接口來應用本地配置:
Map defaults = {
'mLong': 1000,
'mString': 'hello world',
'mDouble': 3.14,
'mBoolean': true
};
AGCRemotConfig.instance.applyDefaults(defaults);
e)打包
與Android相同,只需要在Android Studio中點擊運行即可
注意事項
與在Android平台設置本地配置項不同的是,Flutter無法使用xml文件來存放本地的配置項。
欲了解更多詳情,請參見:
Flutter官方指導文檔:
https://flutter.dev/docs/get-started/install/windows
如何在Android平台集成遠程配置服務:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-remoteconfig-introduction
原文鏈接:
https://developer.huawei.com/consumer/cn/forum/topic/0201399745099710131?fid=0101271690375130218
作者:鼓樓趙又廷