我有一个Android项目,我希望将我的API密钥存储在我的Android Manifest文件中。要阅读它们,我可以阅读OnCreate
类中MainActivity
覆盖中出现的捆绑:viz
type MainActivity () =
inherit FormsApplicationActivity()
static let [<Literal>] MyApiKey = "my-api-key"
override this.OnCreate (bundle) =
base.OnCreate(bundle)
let createViewModel() = new PhotoSetViewModel() :> IRoutableViewModel
AppDomain.CurrentDomain.UnhandledException.AddHandler(UnhandledExceptionEventHandler(AppExceptions.processException))
Forms.Init(this, bundle)
Xamarin.FormsMaps.Init(this, bundle)
// Read the API key that I've stored in AndroidManifest.xml
let platform = new DroidPlatform(bundle.GetString(MyApiKey)) :> ICustomPlatform
let app = new App<ICustomPlatform>(platform, new UiContext(this), createViewModel)
app.Init()
base.LoadApplication app
有一个小问题。 bundle
始终为空。我的所有项目都在C#和F#实现中发生这种情况。
我使用的是Xamarin.Forms NuGet软件包,版本2.3.4.224。
答案 0 :(得分:0)
可以按如下方式检索元数据,而不是尝试使用bundle
参数:
let metaData = PackageManager.GetApplicationInfo(PackageName, PackageInfoFlags.MetaData).MetaData
let platform = new DroidPlatform(metaData.GetString(MyApiKey)) :> ICustomPlatform