我试图实现使用xamarin + mvvmcross
深层链接能力,MvvmCross +深层链接
深联在任的plist配置/清单已经完成,工作。我想要的是,当我的应用程序正在运行或不,我想我的主视图模型来处理它的InitFromBundle
(IMvxBundle bundle
)深度链接发送的参数方法(我的主视图模型在应用程序运行时总是处于活动状态)。
虽然Android中它很容易被覆盖在闪屏活动TriggerFirstNavigate
并重写IMvxAppStart
Start方法来实现,我心中已经通过mvvmcross
源去看看它是如何在Xamarin.iOS
完成,仍然没有运气。
当我的iOS应用程序是由深层链接打开,InitFromBundle
(IMvxBundle bundle
)方法做处理网址参数,但是当我在深层链接点击,而我的应用程序是活的,它把应用推到前面,但不打电话给InitFromBundle
方法。
我所做的已经是它是如何工作的苹果开发人员的检查,可以看出here:
我的情况下,可以在图6-2在上面的链接中可以看出。
我已经通过重写OpenUrl方法来尝试该方法。 在android中,例如,当点击深层链接意图url导致视图重新创建,因此初始化视图模型,在iOS中,因为我了解该视图不会被重新创建,那就是我在寻找 在ViewModel中使用InitFromBundle(IMvxBundle bundle)方法进行viewmodel初始化的正确位置(这是否合理?)。 – Kobynet
@罗斯的回答对我来说很好。当我这样做时,我通常会拦截“open url”,然后将应用程序导航到新的“ViewModel”。如果你想在现有的'ViewModel'中执行一些处理,那么你可能只需要发送一个'Message'或者直接调用一个方法。 – Stuart