我試圖實現使用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