win10桌面和手机的扩展API,判断是否有实体后退键API

喜大普奔的win10 uap开发预览版终于出了,这次更新跟8.1的变化不是很大,但是将原本win8.1和wp8.1uap的分项目的形式,改为了整合成一个项目,经过一次编译打包成一个appx包,实现了无缝跨平台。

每一个平台特有的API,就变为了扩展API,以下几种

 

下面,就以wp特有的后退键为例,看一下不同平台扩展api的使用。

如果你新建一个win10UAP的项目,跑在wp上运行,你会发现,后退键竟然他喵的是后台!这不是抢Home键的饭碗么!

自带的几种风格的页面,竟然是用的左上角虚拟后退键,这种倒行逆施的行为微软你真是够了!

一定要把后退功能找回来!!

于是就用到了扩展api:

1.Add References

2.选择 Universal App Platform – Extensions

3.勾选Windows Mobile Extension SDK

4.愉快的使用 Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;

这句代码放到win10桌面里运行是会crash的,因为桌面版里没有此API,所以需要用

Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")

运行时判断是否有该API的支持。

于是,最后的代码可能是这样:

1
2
3
4
5
if  (Windows.Foundation.Metadata.ApiInformation.IsTypePresent( "Windows.Phone.UI.Input.HardwareButtons" ))
         {
       //http://www.liubaicai.net/archives/444
             Windows.Phone.UI.Input.HardwareButtons.BackPressed -= HardwareButtons_BackPressed;
             Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
         }
1
2
3
4
5
6
7
8
9
private  void  HardwareButtons_BackPressed( object  sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
   //http://www.liubaicai.net/archives/444
     e.Handled = true ;
     Frame rootFrame = Window.Current.Content as  Frame;
     if  (rootFrame.CanGoBack)
         rootFrame.GoBack();
     else
         Application.Current.Exit();
}

于是就愉快的实现了后退键后退的功能。

转载于:https://www.cnblogs.com/rongweijun/p/5322543.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值