[UWP开发]处理手机后退事件
众所周知,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中,让它在程序的整个生命周期中只注册一次就行。