-->

从AppDelegate中打开视图模型(Open ViewModel from Appdelegat

2019-10-20 21:24发布

我试图在通过网页的URL我Xamarin.Ios项目打开特定视图。 该URL的方案工作正常,我也检查在AppDelegate类的网址如下图所示:

[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;
        }
    }
}

我怎么能显示从这个角度我的ViewModel? 我想在一个静态类设置值,并检查它的下一个视图加载时。 但是,当应用程序在后台bevore用户点击URL的方案,链接,没有事件(的viewDidLoad,viewWillAppear中,..)将提高。

任何帮助表示赞赏。 非常感谢

Answer 1:

我使用的是自定义方案启动一个应用程序(类似myscheme主机: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”参数的新视图模型,并通过该视图模型视图控制器(无论是直接从代码或者通过解析器是对与控制器视图模型)。



文章来源: Open ViewModel from Appdelegate