2017-05-05 9 views
-1

Visual Studio 2017、最新のXamarin.Forms、最新のプリズム。絶対URIは機能しません

私が試しても、絶対URIを動作させることはできません。 app.xamlからログインページにアプリを起動しました。 loginpageviewmodelでは、ユーザーが認証されているかどうかをチェックし、そうであれば、メインページに移動したいと考えています。

絶対URLを使用しないとメインページに移動できますが、動作しますが、戻るボタンはログインページに戻ります。

コード:私はすべてのhttpを追加しました

if (user.isAuthenticated) 
{ 
navigationService.NavigateAsync("/AppMasterDetailPage/NavigationPage/MainPage")); 
} 

://などとmyapp.com、...何も私は作品を試してみてください。

uriを変更すると絶対パスが適切なメインページに移動し、ログインページに戻るボタンが表示されなくなります。

+0

共有できるサンプルで問題を再現できますか? Absolute Navigationは 'App.MainPage = new MainPage()'に相当します。絶対ナビゲーションを使用している場合、あなたのデバイスのホーム画面以外に戻ることはありません。 –

+0

私はあなたが質問が不足していると思います。アプリケーションが起動し、ログインページが起動されます。しかし、実際にページが表示される前に、保存された資格情報が有効かどうかを確認します。彼らは、私は、ログインをバイパスし、アプリの "本当の"メインページに移動したいと思う。そのページは、ハンバーガーメニュー、詳細ページなどを含むマスター詳細ページです。絶対的なURIに関する他のすべての投稿から何を試しても、ユーザーが戻るボタンを押して表示することができなくてもログイン画面を回避することはできませんログインページ。それはなぜ-1ですか? –

答えて

0

「ログイン画面」とハンバーガーメニューを使用しているsample projectを確認することができます。

私は試みたナビゲーションをOnNavigatingToから試していませんが、ページが実際にまだスタックにプッシュされていないため、正しく動作するとは思っていません。つまり、ユーザーがOnNavigatedToで認証されているかどうかを確認する場合は、問題なくナビゲーションを実行できます。あなたのユーザーにLoginPageが見えないようにするには、最初にナビゲートしたSplashScreenを持って、LoginPageまたはMasterDetailPageに行くかどうかを決定するロジックを実行してください。

+0

OnNavigatingToについて考えてみません...必要がない限り、ログインページを一切見たくありません。認証チェックをメインページに移動し、必要に応じてLoginPageに移動しようとします。 –

0

私は解決策を持っています...

私はapp.xamlをloginpageに移動しました。 OnNavigatedToメソッドでは、ユーザー認証をチェックします。認証された場合は、その後、私は

NavigatgeAsync("/masterpage/navpage/mainpage"); 

を呼び出し、これはアプリと戻るボタンの適切なメインページに私を取得するバックログインページにならない - 期待されるように、それはアプリを終了します。だから "/ masterpage ..."は私が探していた絶対的なuriです。

0

次回この操作を行う必要があります。_navigationService.NavigateAsync(new Uri("http://www.xxxx.com/Index/Navigation/Home", UriKind.Absolute));これは認証済みで、NavigationServiceを注入した後です。

関連する問題