2011年10月28日金曜日

WindowsPhoneで最初の画面を選ぶ

OAuth認証は基本的に最初の一回でOKのはずです。
なのでアクセストークン(もしくはリフレッシュトークン)を持っていて
通信可能な状態だった場合、別の画面を表示する必要があります。

画面を作る
まず縦向きのページを作成します。
分岐を作成する
App.xamlに対して、Startupイベントを指定します。
  1. <Application   
  2.     x:Class="Ziro.PlusPhone.App"  
  3.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  4.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  5.     xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"  
  6.     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"  
  7.     Startup="Application_Startup">  
で、App.xzml.csにコードができるので
  1. private void Application_Startup(object sender, StartupEventArgs e)  
  2. {  
  3.     if (oauth.Load())  
  4.     {  
  5.         RootFrame.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));  
  6.     }  
  7.     else  
  8.     {  
  9.         RootFrame.Navigate(new Uri("/LoginPage.xaml", UriKind.Relative));  
  10.     }  
  11. }  
という風に条件式を作ってあげて、遷移先を変更してあげます。 私の場合、OAuth認証があるかどうかで判断しています。
デフォルトの画面を読み込ませない
次にプロジェクトの「Properties」内にあるWMAppManifest.xmlの TasksタグにあるDefaultTaskのNavigationPageを削除します。
  1. <Tasks>  
  2.   <DefaultTask Name="_default" NavigationPage="/MainPage.xaml"/>  
  3. </Tasks>  
  4.   
  5. <Tasks>  
  6.   <DefaultTask Name="_default"/>  
  7. </Tasks>  
これをやっておかないと強制的にここが優先されます。 これでOKです。

0 件のコメント: