我正在使用Facebook API的小應用程序。我想要做的是在應用程序第一次啓動時顯示我的登錄/連接到Facebook頁面(或者只要用戶沒有通過驗證。)顯示登錄頁面第一次啓動應用程序
我的主視圖實際上是一個數據透視應用程序,但我不想要以表明只要我沒有Facebook訪問令牌,我也希望能夠從應用欄訪問這個「登錄」頁面(它將與設置頁面相同)
任何?知道如何才能做到這一點
我正在使用Facebook API的小應用程序。我想要做的是在應用程序第一次啓動時顯示我的登錄/連接到Facebook頁面(或者只要用戶沒有通過驗證。)顯示登錄頁面第一次啓動應用程序
我的主視圖實際上是一個數據透視應用程序,但我不想要以表明只要我沒有Facebook訪問令牌,我也希望能夠從應用欄訪問這個「登錄」頁面(它將與設置頁面相同)
任何?知道如何才能做到這一點
我會推薦使用自定義的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();
}
}
我相信你有兩個選擇:
顯示您的主視圖,然後在「加載」處理程序中,檢查用戶是否先前已登錄。如果他們沒有,則切換到登錄頁面。缺點是您的主視圖在切換到登錄頁面之前會顯示一秒鐘。你可以顯示一個「檢查登錄」字幕或其他東西。
使您的啓動頁面成爲一個簡單的「加載...」頁面。在這個頁面的'loaded'處理程序中檢查用戶是否登錄,然後切換到相應的頁面。缺點是加載的頁面總是會顯示一秒鐘。
我在商業應用程序中使用了第一種方法,看起來很好。
輝煌。我不知道這種方法。謝謝(你的)信息。 – Jon
請查看我關於Application_Activated事件的更多信息 –