Xamarin Forms(Android):OnCreate包为空

时间:2017-04-07 10:04:58

标签: c# android f# xamarin.forms

我有一个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。

1 个答案:

答案 0 :(得分:0)

可以按如下方式检索元数据,而不是尝试使用bundle参数:

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