2017-08-01 6 views
0

IMvxNavigationFacadeを使用してviewmodelにナビゲートするときに、いくつかのパラメータをプリセットする予定です。IMvxNavigationFacadeからMvxViewModelRequestの新しいパラメータをデインリンク時に送信

もしmyAppName://ディープリンク/ toviewwithdata/navigatetoview = viewtype1 & ID = 78910

だから、ディープリンクが動作してイム使用してナビゲーションファサードになっているディープリンクのURLは次のようですアセンブリ属性

[assembly: MvxNavigation(typeof(RoutingFacade), @"myappname://deeplink/toviewwithdata/\?navigatetoview=(?<viewtype>viewtype1)&id=(?<id>\d{5})")] 

私はMvxBundleを使用してMvxViewModelRequestに他のパラメータを追加しようとしましたが、イムは、右のそれをやっていけないと思います。

はその後、私の

public void Init(string id, string viewtype, string test) 
    { 
     // Do stuff with parameters 
    } 

のviewmodel Initメソッドが、テストパラメータがnullの

public class RoutingFacade : IMvxNavigationFacade 
{ 
    public Task<MvxViewModelRequest> BuildViewModelRequest(string url, IDictionary<string, string> currentParameters) 
    { 
     var viewModelType = typeof(FirstViewModel); 
     var parameters = new MvxBundle(); 
     try 
     { 
      // TODO: Update this to handle different view types and add error handling 
      if (currentParameters != null) 
      { 
       Debug.WriteLine($"RoutingFacade - {currentParameters["viewtype"]}, {currentParameters["id"]}"); 

       switch (currentParameters["viewtype"]) 
       { 
        case "viewtype1": 
         viewModelType = typeof(FirstViewModel); 
         parameters.Data.Add("test", "somevalue"); 
         break; 
        default: 
        case "viewtype2": 
         viewModelType = typeof(FirstViewModel); 
         break; 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      Debug.WriteLine($"RoutingFacade - Exception: {ex.Message}"); 
      //TODO viewModelType = typeof(ErrorViewModel); 
     } 

    return Task.FromResult(new MvxViewModelRequest(viewModelType, parameters, null)); 
} 

:ここに私のナビゲーションファサードはありますか?パラメータをMvxViewModelRequestにどのように渡しますか?

更新:リクエストパラメータはディープリンクURLの正規表現とBuildViewModelRequestからのリターンからセットされますよう、facadeRequest.parameterValuesは無視ますhttps://github.com/MvvmCross/MvvmCross/blob/f4b2a7241054ac288a391c4c7b7a7342852e1e19/MvvmCross/Core/Core/Navigation/MvxNavigationService.cs#L122ここにソースを見てから、その可能な場合

が知ってはいけません。

答えて

0

この機能をこのプルに追加しましたrequest

関連する問題