Xamarin.ios 从Appdelegate打开ViewModel

Xamarin.ios 从Appdelegate打开ViewModel,xamarin.ios,xamarin,viewmodel,mvvmcross,appdelegate,Xamarin.ios,Xamarin,Viewmodel,Mvvmcross,Appdelegate,我正在尝试通过Web Url打开我的Xamarin.Ios-Project中的特定视图。url方案工作正常,我还在AppDelegate类中检查url,如下所示: [Register("AppDelegate")] public partial class AppDelegate : MvxApplicationDelegate { // other methods ... public override bool OpenUrl(UIApplication applicati

我正在尝试通过Web Url打开我的Xamarin.Ios-Project中的特定视图。url方案工作正常,我还在AppDelegate类中检查url,如下所示:

[Register("AppDelegate")]
public partial class AppDelegate : MvxApplicationDelegate
{
    // other methods ...

    public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
    {
        if (url == null) return false;

        var uri = new Uri(url.ToString());
        if(uri.Host.Equals("myscheme-host"))
        {
            var param = GetParameters(uri);

            // What can i do here?
            ShowViewModel<MyViewModel>();

            return true;
        }
    }
}
[注册(“AppDelegate”)]
公共部分类AppDelegate:MvxApplicationDelegate
{
//其他方法。。。
公共覆盖bool OpenUrl(UIApplication应用程序、NSUrl url、string sourceApplication、NSObject注释)
{
if(url==null)返回false;
var uri=新的uri(url.ToString());
if(uri.Host.Equals(“myscheme主机”))
{
var param=GetParameters(uri);
//我能在这里做什么?
ShowViewModel();
返回true;
}
}
}
如何从这一点显示Viewmodel?我试图在静态类中设置一个值,并在下一个视图加载时检查它。但当应用程序位于后台时,如果用户单击Url方案链接,则不会引发任何事件(ViewDidLoad、ViewWillDisplay等)


感谢您的帮助。非常感谢

我正在使用一个自定义方案来启动一个应用程序(类似于myscheme-host:xxxx),因此我在OpenUrl上写的内容如下:

    public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
    {
        if (url.AbsoluteString.StartsWith("myscheme-host:"))
        {
            this.window.RootViewController = new MySchemeViewController();

在您的情况下,您可能会根据“xxxx”参数创建一个新的视图模型,并将该视图模型传递给视图控制器(无论是直接从代码中传递还是通过将视图模型与控制器配对的解析器)。

谢谢您的回答。我只是尝试了一下,但问题是,当我使用viewmodel创建控制器时,ui没有正确显示(导航栏不可见)。解决方案:我将当前的ViewModel保存在AppDelegate类中,只需向其中添加一个命令,它将显示一个不同的ViewModel(我在OpenUrl方法中进行了检查)。那对我来说很好