MvvmCross:如何导航到 ViewModel 以外的地方?

use*_*286 5 mvvm windows-8 mvvmcross xamarin windows-phone-8

我会在我的 MvxCommand 中放入什么来导航到一个简单的 URL?所有移动平台都有一种机制来向操作系统询问可以显示 URL 内容的 Activity 或 ViewController。我将如何使用 MvvmCross 做到这一点?我知道的一种方法是在调用 ShowViewModel 时将特殊的东西放在presentationBundle 和/或 parameterBundle 中,演示者可以检测到它来执行特殊的 OpenUrl 命令。但这是最好的方法吗??

Stu*_*art 3

有一个插件可以实现此功能 - https://github.com/slodge/MvvmCross/tree/v3/Plugins/Cirrious/WebBrowser

如果加载了该插件,则视图模型可以使用:

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");
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以看到它用于例如:

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