2017-04-07 2 views
2

Ich habe ein Android-Projekt, und ich möchte meine API-Schlüssel in meiner Android-Manifest-Datei speichern. Um sich zu lesen, kann ich das Bündel lesen, die in meiner MainActivity Klasse im OnCreate Überschreibung kommt durch: nämlichXamarin Forms (Android): OnCreate Bundle ist null

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 

Es gibt ein kleines Problem. bundle ist immer null. Dies geschieht in allen meinen Projekten, sowohl in C# als auch in F # Implementierungen.

Ich benutze das Xamarin.Forms NuGet Paket, Version 2.3.4.224.

Antwort

0

Anstatt zu versuchen, das bundle Argument zu verwenden, ist es möglich, den Metadaten abzurufen, wie folgt:

let metaData = PackageManager.GetApplicationInfo(PackageName, PackageInfoFlags.MetaData).MetaData 
let platform = new DroidPlatform(metaData.GetString(MyApiKey)) :> ICustomPlatform 
Verwandte Themen