我们可以把应用的配置放在环境变量文件里,先给项目安装一个包,在终端项目所在目录的下面,执行一下 flutter pub add flutter_dotenv,安装一下 flutter_dotenv 这个包 。完成以后,在项目里打开 pubspec.yaml 观察一下,在 dependencies 的下面,会列出刚才我们好安装的这个包。
在项目的根目录下面,新建一个文件,名字是 .env,在这个文件里我们可以定义一些环境变量,比如这里添加一个 API_BASE_URL,它的值是服务端应用接口的基本的地址,如果你有自己的服务端可以在这里输入你的服务端应用的基本地址,没有的话可以使用我提供的这个服务端应用,基本地址是 https://nid-node.ninghao.co。
这个 .env 文件你可以在项目的代码仓库里忽略掉,比如可以在这个 .gitignore 里面,添加一个 *.env ,这样就会忽略掉这个 .env 文件。这里我打算把这个 .env 放在代码仓库里,所以可以不用忽略掉它。
再打开 pubspec.yaml,找到 flutter 下面的 assets ,在这个 属性的下面添加一个新的项目,文件就是 .env。 然后打开 main.dart,这里用 async 标记一下这个 main 函数。然后在它里面,await 执行一下 dotenv.load ,把 fileName 设置成 '.env' 。这个 dotenv 来自之前我们安装的 flutter_dotenv 这个包。
下面可以再去创建一个返回应用配置用的类,放在 lib/app 的下面,名字是 app_config.dart,在这个文件里定义一个类,名字是 AppConfig,在这个类里面可以添加一些静态的获取器,用来返回应用需要的一些配置,static String get,名字是 apiBaseUrl,这个 getter 返回的值可以用一下 dotenv.get,把环境变量的名字告诉它,这里就是 API_BASE_URL,可以再给它提供一个默认值,添加一个 fallback,值是 https://nid-node.nignhao.co ,这样如果在环境变量里没找到 API_BASE_URL ,就是返回这个默认值。
打开 playground_http.dart,找到这里定义的 getUser 这个方法,在这个方法里请求用户接口的时候,这个基本的接口地址可以使用我们应用里的一个配置。这里就是 AppConfig 里的 apiBaseUrl,选中 AppConfig,command + . 选择导入它,然后访问一下它里面的 apiBaseUrl 这个静态 getter。
打开调试,重新启动一下,再打开调试控制台,然后在练习页面,按一下发送请求这个按钮,会请求服务端的用户接口。