zoukankan      html  css  js  c++  java
  • 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();
    }

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

  • 相关阅读:
    Tomcat基于MSM+Memcached实现Session共享
    Zabbix简介及安装
    redis简介
    Ansible详解(二)
    Ansible详解(一)
    WAMP3.1.10/Apache 设置站点根目录
    最长回文子串--轻松理解Manacher算法
    一篇文章彻底了解Java垃圾收集(GC)机制
    java内存模型详解
    Java中23种设计模式--超快速入门及举例代码
  • 原文地址:https://www.cnblogs.com/rongweijun/p/5322543.html
Copyright © 2011-2022 走看看