眾所周知,uwp程序是一套代碼,可以run在不同的平台上。但是不同的設備肯定有其獨特之處,所以針對這些獨特之處,必須用“獨特的代碼”來處理。
所以微軟提供了一系列的拓展類庫來實現這種特殊處理。
如上圖所示,紅框中的便是拓展程序集。
當然實現手機后后退鍵處理,我們就需要把Mobile對應的程序集添加到我們的項目中去。
添加后只需要一段很簡短的代碼,我們就可以實現對后退按鍵的處理。代碼很簡潔。
if ("Windows.Mobile" == Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily) Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed; private void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e) { var rootFrame = Window.Current.Content as Frame; if (rootFrame.CanGoBack) { rootFrame.GoBack(); e.Handled = true; } }
if用來判斷程序運行的平台,如果是Moblie,就注冊一個處理后退的事件。如果不判斷的話,編譯不會出錯,但在運行的
時候會發生錯誤。
那么這段段代碼應該放在哪兒呢?
之前我一直都是放在單個頁面的構造函數中,但后來發現隨着頁面增多會有問題。所以現在我把這段代碼放在App.cs中,讓它在程序的整個生命周期中只注冊一次就行。