Die Plugins werden über Bootstrappers
geladen. Diese Bootstrapper werden automatisch mit den MvvmCross-Plugins im Ordner Bootstrap
installiert. $rootnamespace
wird beim Installieren des Plugins über NuGet durch den Root-Namespace des Zielprojekts ersetzt.
iOS Bootstrapper
Erben von MvxLoaderPluginBootstrapAction
.
namespace $rootnamespace$.Bootstrap
{
public class BlePluginBootstrap
: MvxLoaderPluginBootstrapAction<MvvmCross.Plugins.BLE.PluginLoader, MvvmCross.Plugins.BLE.iOS.Plugin>
{
}
}
Android Bootstrapper
Erbt von MvxPluginBootstrapAction
.
namespace $rootnamespace$.Bootstrap
{
public class BlePluginBootstrap
: MvxPluginBootstrapAction<MvvmCross.Plugins.BLE.PluginLoader>
{
}
}
Plugin
public class PluginLoader
: IMvxPluginLoader
{
public static readonly PluginLoader Instance = new PluginLoader();
public void EnsureLoaded()
{
var manager = Mvx.Resolve<IMvxPluginManager>();
manager.EnsurePlatformAdaptionLoaded<PluginLoader>();
}
}
Plugin
Jede Plugin seine plattformspezifische Plugin
Klasse hat, die die Implementierung der Schnittstellen registriert.
namespace MvvmCross.Plugins.BLE.Droid
{
public class Plugin
: IMvxPlugin
{
public void Load()
{
Mvx.LazyConstructAndRegisterSingleton<IAdapter>(() => new Adapter());
}
}
}
Beachten Sie, dass die Plug-in-Registrierung 4.1.4 Refactoring ist: https://github.com/MvvmCross/MvvmCross/pull/1290 – Martijn00