2012-06-14 110 views
0

我正在使用Facebook API的小應用程序。我想要做的是在應用程序第一次啓動時顯示我的登錄/連接到Facebook頁面(或者只要用戶沒有通過驗證。)顯示登錄頁面第一次啓動應用程序

我的主視圖實際上是一個數據透視應用程序,但我不想要以表明只要我沒有Facebook訪問令牌,我也希望能夠從應用欄訪問這個「登錄」頁面(它將與設置頁面相同)

任何?知道如何才能做到這一點

回答

2

我會推薦使用自定義的UriMapper。這使您不必擔心主頁面導航到登錄頁面,然後不得不管理導航堆棧。

您可以閱讀有關此方法的詳細信息here

要做到這一點,修改DefaultTask元素在WMAppManifest導航到一個假網頁

<DefaultTask Name="_default" NavigationPage="LaunchPage.xaml" /> 

然後創建一個UriMapper類

public class LoginUriMapper : UriMapperBase 
{ 
    public override Uri MapUri(Uri uri) 
    { 
     if (uri.OriginalString == "/LaunchPage.xaml") 
     { 
      // Determine for yourself how to store login info, AppSettings (IsoStore) is a good choice) 
      if (NeedsLoginInfo) 
      { 
       uri = new Uri("/LoginPage.xaml", UriKind.Relative); 
      } 
      else 
      { 
       uri = new Uri("/MainPage.xaml", UriKind.Relative); 
      } 
     } 
     return uri; 
    } 
} 

而在去年,設置映射在你的應用程序Application_Launching事件

private void Application_Launching(object sender, LaunchingEventArgs e) 
{ 
    RootFrame.UriMapper = new LoginUriMapper(); 

    // You should also handle logging in if you already have info 
    // Determine for yourself how to store login info, AppSettings (IsoStore) is a good choice) 
    if (NeedsLoginInfo == false) 
    { 
     LoginObject.Login(); 
    } 
} 

AND在應用程序中_Activated event如果該應用是墓碑式的

private void Application_Activated(object sender, ActivatedEventArgs e) 
{ 
    if (e.IsApplicationInstancePreserved == false) 
    { 
     RootFrame.UriMapper = new LoginUriMapper(); 
    } 
} 
+0

輝煌。我不知道這種方法。謝謝(你的)信息。 – Jon

+0

請查看我關於Application_Activated事件的更多信息 –

0

我相信你有兩個選擇:

  1. 顯示您的主視圖,然後在「加載」處理程序中,檢查用戶是否先前已登錄。如果他們沒有,則切換到登錄頁面。缺點是您的主視圖在切換到登錄頁面之前會顯示一秒鐘。你可以顯示一個「檢查登錄」字幕或其他東西。

  2. 使您的啓動頁面成爲一個簡單的「加載...」頁面。在這個頁面的'loaded'處理程序中檢查用戶是否登錄,然後切換到相應的頁面。缺點是加載的頁面總是會顯示一秒鐘。

我在商業應用程序中使用了第一種方法,看起來很好。

相關問題