[英]How to read assets JSON file from different package in flutter?
我正在開發一個 Flutter 應用程序,其中我為主應用程序使用了多個插件
main_app
-plugin1
-example
-plugin2
-example
-plugin3
--example
package as well
- <package_name>
每個插件都有自己的示例文件夾,它幫助我使用單獨保存在純 flutter 包中的常見圖像和圖標來測試 UI 和大部分 UI:
framework_utilities:<--(package)
assets:
- assets/
- assets/images/green/2x/
- assets/mockup/reg_state.json <--- JSON file
lib
src
constant
我可以通過傳遞包引用來訪問圖像和圖標:
Image.asset("assets/barcode.png", package: "framework_utilities", width: 70.0, height: pad_30),
現在我的要求是我想模擬整個應用程序而不將 json 文件包含到主應用程序級別。
如果我在主應用程序的資產文件夾中包含 json 文件,它工作正常,但我不想在插件和應用程序中制作 json 文件的副本,我想將它保存在一個地方並閱讀它。
我試過
rootBundle.loadString('assets/reg_state.json')
它僅適用於單個插件示例級別。
為什么我需要讀取 json 文件?
如果我模擬主應用程序或單個插件,那么我可以提供一個虛擬的 json 數據來查看 UI。
我如何解決這個問題:
在主應用程序pubspec.yaml
文件中導入包和插件
registration_plugin:
path: ../registration_plugin <--- this is plugin
framework_utils:
path: ../framework_utils <--- this is package
我在 framework_utils 資產文件夾中有 json 文件和圖標,例如:
assets:
- assets/
- assets/images/green/2x/
- assets/reg_state.json
- assets/user_state.json
現在,如果您想在插件中讀取此文件或圖標,我將調用如下代碼:
對於圖像
Image.asset("assets/user.png", package: "framework_utils", width: 70.0, height: pad_30),
對於 JSON 文件
String path = 'packages/framework_utils/assets/user_state.json';
String jobsString = await rootBundle.loadString(path);
List<dynamic> users = await jsonDecode(jobsString);
這是我的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.