如何解决Flutter如何确保Android Studio中的应用程序热重载时调用函数?
我有一个Flutter应用程序,该应用程序依赖于根据其运行环境设置的正确服务器URL。但是,似乎在热重载期间未调用我的函数。
我在main.dart
的顶部:
String TARGET_URL; /// TODO: Replace once figure out how to set environment Variables based on type of device.
void setTargetURLForEnv() async {
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
if (Platform.isIOS) {
IosDeviceInfo iosDeviceInfo = await deviceInfo.iosInfo;
if (iosDeviceInfo.isPhysicalDevice) {
TARGET_URL = 'http://aws-server-url.com';
} else {
TARGET_URL = 'http://localhost:6900';
}
}
}
void main() async {
runApp(App());
setTargetURLForEnv();
}
热重载会导致TARGET_URL
为null,即使在iOS模拟器上运行时也是如此。如何强制调用此方法?
解决方法
尝试在runApp(App())上方使用setTargetURLForEnv()。我认为因为它在App()之外,所以热重载该应用程序将无法执行该功能。尝试热重启('R'),而不是终端中的热重启。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。