如何在Flutter中从Android清单中获取变量?
我想在我的包中使用GoogleMapsAPI的API键,假设它存在于AndroidManifest文件(以及iOS等效文件)中。我发现如果您使用如何在Flutter中从Android清单中获取变量?,flutter,dart,Flutter,Dart,我想在我的包中使用GoogleMapsAPI的API键,假设它存在于AndroidManifest文件(以及iOS等效文件)中。我发现如果您使用google\u maps\u flatter包,您永远不必将API键传递给GoogleMap小部件。目前,我将API密钥作为属性传递给我使用的每个小部件,如下所示: //该类通过名为apiKey的属性接收API密钥 SearchPlaceWidget(apiKey:YOUR_API_KEY); 我想要这样的东西: //该类将直接从AndroidMan
google\u maps\u flatter
包,您永远不必将API键传递给GoogleMap
小部件。目前,我将API密钥作为属性传递给我使用的每个小部件,如下所示:
//该类通过名为apiKey的属性接收API密钥
SearchPlaceWidget(apiKey:YOUR_API_KEY);
我想要这样的东西:
//该类将直接从AndroidManifest文件获取API密钥
SeachPlaceWidget()
您无法从AndroidManifest.xml
文件中获取变量。下面是您可以做的,在lib
文件夹中创建一个新文件,比如说strings.dart
,在该文件中
在新创建的lib/strings.dart中编写此代码
final String apiKey = "your_api_key";
无论您想在何处使用API密钥,只需导入lib/strings.dart
文件,然后像这样使用它:
SearchPlaceWidget(apiKey: apiKey);
谷歌地图小部件是如何访问它的?直接从本机语言(Android的Java和iOS的Obj-C)?在我的例子中,因为我正在将其制作成一个包,所以使用这个解决方案并不是最好的(将其作为参数之一传递给小部件构造函数更好)?如果是,您已经有了strings.xml
文件,您可以在那里添加上面的字符串,并像getString(R.String.api_key)
我没有处理本机代码一样使用它。我将在Flatter GitHub中打开一个功能请求,让他们制作一个简单的API,这样我们就可以访问AndroidManifest(和iOS等效)全局变量。GoogleMap
widget可以像我提到的SearchPlaceWidget
一样访问它,你所需要做的就是导入strings.dart
文件并使用apiKey
在这种情况下,它没有任何帮助,因为我正在制作一个供任何人使用的包,只需在小部件构造函数中请求api密钥就更容易了。谢谢你的帮助。