我正在尝试通过Web-Url在我的Xamarin.Ios-Project中打开一个特定的视图。 url-scheme工作正常,我还检查了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;
}
}
}
如何从这一点展示我的Viewmodel?我试图在静态类中设置一个值,并在下一个视图加载时检查它。但当应用程序在后台bevore时,用户点击了Url-Scheme-Link,没有任何事件(ViewDidLoad,ViewWillAppear,..)将会升起。
感谢任何帮助。非常感谢
答案 0 :(得分:0)
我正在使用自定义方案来启动应用程序(类似于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”参数创建一个新的视图模型,并将该视图模型传递给视图控制器(无论是直接来自代码还是通过将视图模型与控制器配对的解析器)