【问题标题】:Custom plugin in MVVMCrossMVVMCross 中的自定义插件
【发布时间】:2013-05-28 09:11:31
【问题描述】:

我正在开发 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 中做到这一点?

谢谢

【问题讨论】:

  • 抱歉 - 不确定您是否注意到我确实使用一些链接更新了另一个问题的答案。

标签: mvvmcross


【解决方案1】:

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

对于插件初始化,nuget 包现在通过引导文件执行此操作 - 例如。查看为位置添加的文件:


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

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

  • 在 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-%20TwitterSearch 的 UI 项目中的 Setup.cs

【讨论】:

  • 谢谢,它适用于最新的示例 :) 现在如果我想将项目 Sample.Plugin.Vibration.WindowsPhone 移动到我的 Windows Phone 应用程序中的一个简单文件夹中,可以吗?
  • 那条评论 - 将项目移动到应用程序的文件夹中 - 对我来说毫无意义。如果一个问题值得提出,请正确提出 - 这会节省我们双方的时间。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多