我的 flutter 应用程序使用地图 API 密钥,如下所示。
创建脚本元素.dart
import 'dart:html';
import 'current_flavour.dart';
void createScriptElement() {
ScriptElement script = ScriptElement();
script.src = "https://maps.googleapis.com/maps/api/js?key=${currentFlavor()}&language=en&libraries=drawing&callback=Function.prototype";
script.id = "super-script";
document.head?.append(script);
}
另一个文件“current_flavour.dart”有密钥
const String flavorDev = "dev-key";
const String flavorProd = "prod-key";
String currentFlavor() {
final flavor = const String.fromEnvironment("flavor", defaultValue: "dev");
if (flavor == "prod") {
return flavorProd;
}
return flavorDev;
}
这个应用程序可以完美地作为网络应用程序运行,
flutter run -d chrome --dart-define=flavor="prod"
但是当我在 Android 模拟器上运行时,
flutter run -d emulator-5554 --dart-define=flavor="prod"
由于导入html而失败。我应该如何继续在所有平台上运行它?
dart:html 不是为移动平台设计的,您可以使用 Universal html 代替,或者您可以根据跨平台使用条件导入。