MvvmCross +深层链接

时间:2014-01-06 09:13:27

标签: android ios xamarin mvvmcross

我正在尝试使用xamarin + mvvmcross

实现深层链接功能

plist / manifest中的深层链接配置已经完成并正常工作。

我正在尝试实现的是,当我的应用程序运行或不运行时,我希望我的主视图模型处理深层链接发送的参数InitFromBundleIMvxBundle bundle )方法(我的主视图模型在应用程序运行时始终处于活动状态。)

虽然在android中通过覆盖启动画面活动中的TriggerFirstNavigate并覆盖IMvxAppStart启动方法来实现相当容易,但我已经浏览了mvvmcross来源以了解如何它是在Xamarin.iOS完成的,但仍然没有运气。

当我从深层链接打开我的ios应用程序时,InitFromBundleIMvxBundle bundle)方法会处理url参数,但是当我的应用程序处于活动状态时点击深层链接时,它将应用程序带到前面但不会调用InitFromBundle方法。

我已经做过的是向苹果开发者查询它是如何工作的,可以看到here

我的情况可以在上面链接的图6-2中看到。

1 个答案:

答案 0 :(得分:2)

这只是一个猜测,但根据我想象的文档,您需要覆盖appdelegate.cs中的HandleOpenURL。然后,您可能希望使用信使提醒您的应用程序已请求新网址,或者按照此处的答案navigate to a view model from a view

e.g。

public override bool HandleOpenURL (UIApplication application, NSUrl url)
{
    if (url != null)
    {
        //do navigation or message notification here
        return true;
    }
    else
        return false;
}