MvvmCross:如何导航到除ViewModel之外的东西?

我将在MvxCommand中导入一个简单的URL?所有移动平台都有一种机制,可以向操作系统询问可以显示URL内容的Activity或ViewController.我怎么用MvvmCross做到这一点?我知道的一种方法是在调用ShowViewModel时在presentationBundle和/或parameterBundle中放入特殊内容,演示者可以检测到这些内容可以执行特殊的OpenUrl命令.但那是最好的方法吗? 最佳答案 有一个插件可以实现这个 –
https://github.com/slodge/MvvmCross/tree/v3/Plugins/Cirrious/WebBrowser

如果加载了该插件,那么viewmodel可以使用:

public class MyViewModel : MvxViewModel
{
    private readonly IMvxWebBrowserTask _webBrowser;

    public MyViewModel(IMvxWebBrowserTask webBrowser)
    {
       _webBrowser = webBrowse;
    }

    public ICommand ShowWebPage
    {
        get { return new MvxCommand(() => _webBrowser.ShowWebPage("https://github.com/slodge/mvvmcross");
    }
}

你可以看到这个用于,例如:

> https://github.com/slodge/MvvmCross-Tutorials/blob/master/Sample%20-%20CirriousConference/Cirrious.Conference.Core/ViewModels/BaseViewModel.cs
> https://github.com/slodge/MvvmCross-Tutorials/blob/master/Sample%20-%20CustomerManagement/CustomerManagement/CustomerManagement/ViewModels/DetailsCustomerViewModel.cs

如果您需要创建自己的插件,请参阅https://speakerdeck.com/cirrious/plugins-in-mvvmcross

点赞