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();
    }

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

  • 相关阅读:
    单位rem 触屏适配总结
    汉字转拼音插件:LM-PinYin.js
    PngOptimizer PNG压缩工具
    H5微信场景应用 audio模块
    LM_ReadImgMode.js PC单页轮播读图模式组件,零依赖!
    js中的eval方法
    IE6利用iframe遮挡 弹层 select
    H5 video安卓默认点击不能全屏播放解决办法
    JS正则截取两个字符串之间的字符串
    定宽320 缩放适配手机屏幕
  • 原文地址:https://www.cnblogs.com/rongweijun/p/5322543.html
Copyright © 2011-2022 走看看