Khi ứng dụng khởi chạy thời gian cần hiển thị trang đăng ký. Người dùng đã đăng ký không nên truy cập trang đăng ký cần truy cập trang đăng nhập. Làm thế nào để đạt được điều này?Làm thế nào để hiển thị các trang khác nhau khi ứng dụng khởi chạy thời gian trong Windows Phone 7?
Làm thế nào để hiển thị các trang khác nhau khi ứng dụng khởi chạy thời gian trong Windows Phone 7?
Trả lời
Bạn có thể điều hướng đến trang bắt đầu của ứng dụng Windows Phone từ mã.
Tháo "DefaultTask" nhập từ WMAppManifest
Remove thuộc tính NavigationPage từ "DefaultTask" trong WMAppManifest, và trong trường hợp phát động Chiến dịch ứng dụng của bạn sử dụng một cái gì đó giống như ví dụ dưới đây để điều hướng đến trang của sự lựa chọn khi khởi động.
private void Application_Launching(object sender, LaunchingEventArgs e)
{
if (registered)
{
((App)Application.Current).RootFrame.Navigate(new Uri("/<your start page>.xaml", UriKind.Relative));
}
else
{
((App)Application.Current).RootFrame.Navigate(new Uri("/<your registration page>.xaml", UriKind.Relative));
}
}
Bạn chỉ cần quyết định cách bạn muốn xác định ai đó đã đăng ký.
Tôi đoán bạn chưa đặt nhiều suy nghĩ về điều này, quá trình thiết lập khá dễ dàng! Khi người dùng đăng ký, bạn có thể đặt biến trong cài đặt xác định rằng người dùng đã đăng ký. Khi ứng dụng bắt đầu, hãy đánh giá cài đặt này và nếu người dùng đã đăng ký bạn hiển thị trang đăng ký, nếu không thì trang đăng nhập. Ví dụ:
//After (succesful) registration
Properties.Settings.Default.HasRegistered = true;
Properties.Settings.Default.Save();
//Check the value
var hasRegistered = Properties.Settings.Default.HasRegistered;
if(hasRegistered)
//show Login
else
//show Registration
Bạn cũng có thể sử dụng IsolatedStorageSettings.ApplcationSettings để thực hiện việc này. Mã dưới đây chỉ là mã mẫu, bạn sẽ phải cung cấp xác thực nếu cài đặt đã tồn tại trên lần khởi động đầu tiên của ứng dụng và đặt giá trị mặc định là 'false' cho cài đặt nếu chưa có đăng ký nào xảy ra.
//After registration
var settings = IsolatedStorageSettings.ApplicationSettings;
if (settings.Contains("HasRegistered"))
settings["HasRegistered"] = true;
settings.Save();
//Check value
var settings = IsolatedStorageSettings.ApplicationSettings;
if (settings.Contains("HasRegistered"))
{
var registered = bool.Parse(settings["HasRegistered"]);
if(registered)
//show login
else
//show registration
}
Hy vọng điều này sẽ hữu ích!
Tôi đoán bạn đã không đặt rất nhiều suy nghĩ này, như câu trả lời ở trên là dễ dàng hơn nhiều. ;-) – MEMark
Bạn không thể xóa mục nhập DefaultTask. Tuy nhiên bạn có thể loại bỏ các NavigationPage atrribute từ nó. –
À vâng, cảm ơn sự điều chỉnh. Tôi sẽ cập nhật mục nhập. –
Phương pháp này hiệu quả với tôi. Cảm ơn! – Nico