Xamarin.Forms PrismでMVVM入門 PlatformInitializerでプラットフォーム固有処理

こんにちは。レモンティーです。

前回はDependencyServiceでプラットフォーム固有の処理をしました。
www.sawalemontea.com

今回は、それをPlatformInitializerでやってみます。

といっても、仕組はともかくとして
やる事はDependencyServiceとよく似ています。

共有インターフェースを作る
各プラットフォームごとに実装

までは同じです。

登録の部分からが違います。

PlatformInitializerでは、各プラットフォームの
RegisterTypesメソッドに登録をします。

どこにそんなメソッドがあるかというと、それぞれ

Androidプロジェクト
MainActivity.csのAndroidInitializer
iOSプロジェクト
AppDelegate.csのiOSInitializer
UWPプロジェクト
MainPage.xaml.csのUwpInitializwe

です。

登録の内容は同じで、こうなります。

        public void RegisterTypes(IContainerRegistry container)
        {
            container.Register(typeof(ITest), typeof(Test));
           
        }

ITestがインターフェースでTestが各プラットフォームの実装クラスです。


そして使用はこのようになります。
(TestViewModel()はコンストラクタです)

private ITest _test;

TestViewModel(ITest test)
{
    _test = test;
}


としておいて、使いたいときに
_test.Test();


これでプラットフォーム固有機能が使えます。


今回はこれでおしまいです。
www.sawalemontea.com