2011年10月28日金曜日

WindowsPhoneで最初の画面を選ぶ

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

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

0 件のコメント: