3

我正在研究 MVVMCross v3,我想创建自己的插件,我按照本教程进行操作(适用于 vNext)

http://slodge.blogspot.fr/2012/10/build-new-plugin-for-mvvmcrosss.html

为了与 v3 兼容,我将 IMvxServiceConsumer 和 GetService 更改为 Mvx.Resolve。

但是在教程中有:

然后,对于 WinRT、WindowsPhone 和 MonoTouch 客户端,您还需要在 setup.cs 中提供 Loader 访问器 - 例如:

protected override void AddPluginsLoaders(Cirrious.MvvmCross.Platform.MvxLoaderPluginRegistry loaders)

{
    loaders.AddConventionalPlugin<MyCompany.MvvmCross.Plugins.Mega.WindowsPhone.Plugin>();

    base.AddPluginsLoaders(loaders);
}

我怎么能在 v3 中做到这一点?

谢谢

4

1 回答 1

4

如果你想写一个新插件,那么:

对于插件初始化,nuget 包现在通过引导文件执行此操作 - 例如,请参阅为 Location 添加的文件:


引导方式是现在进行初始化的正常方式。

如果您确实想使用非引导技术,那么您可以这样做:

  • 在 WinRT、WinPhone 和 Droid 中,您不需要使用加载程序,但您需要MyPlugin.PluginManager.Instance.EnsureLoaded在使用插件之前调用。
  • 在 Touch 中,您需要在此期间提供一个加载程序protected override void AddPluginsLoaders(MvxLoaderPluginRegistry loaders)-然后您仍然需要EnsureLoaded()在使用插件之前调用。

有关这种“旧方式”工作的示例,请参阅https://github.com/slodge/MvvmCross-Tutorials/tree/master/Sample%20-%20TwitterSearchSetup.cs中的 UI 项目

于 2013-05-28T09:21:53.733 回答