抽屉菜单使用小结

本文总结了在AppCan中使用抽屉菜单的常见步骤和遇到的问题。首先,通过AppCan IDE创建抽屉菜单页面时,需要手动调整默认页面属性,并解决资源文件引用错误。解决方法是将资源文件复制到正确位置。其次,在真机测试时,发现点击回退键不会立即退出应用,而是弹出抽屉菜单。为修复此问题,需要在`leftmenu.html`的`appcan.ready()`事件中添加自定义的`addBackListener()`函数,监听并处理回退键事件,确保用户能够正常退出应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 抽屉菜单(不知道为什么叫这个名字),在app中使用很频繁 。appcan官网IDE中内置了该模板,我们只需要新建appcan页面,选择“抽屉”就可以实现。但是在创建页面后,会遇到两个恶心的问题需要手工解决 ,如下;
一、首先我们创建leftmenu页面,选择布局结构“抽屉”,内容为空,该页面为不添加任何内容 。点击完成后,观察IDE左侧树形结构上会生成3个页面分别是 leftmenu.html , leftmenu_drawer.html, leftmenu_content.html 。这三个页面中 leftmenu_drawer.html 是第一个被加载的初始页面 ,接着我们需要修改config文件中的默认页面属性,将leftmenu_drawer.html作为默认页面 。
然后在本地进行打包测试,我们会发现1个小问题,默认情况下 弹出的左侧抽屉菜单没有图标,如图
没有图标,只有文字,打开调试信息发现
有若干报错,全是找不到资源文件,自己仔细找一下ide下的文件夹会发现所有要用的资源文件都在leftmenu_drawer文件夹下面。这个是ide的错。解决办法很简单,把它复制到 leftmenu\css\下就能解决问题.
二、然后我们在用真机测试的时候会发现一个比较难堪的事情 ,当你点击 “回退”键的时候,不是先弹出一个对话框问你是否退出程序,而是直接把左侧的抽屉菜单弹出来了 !接着你再点击“回退”键才会提示你“是否退出”应用 !这个感觉太糟糕了 !经过看论坛以前的帖子,解决办法如下:
在leftmenu.html 页面中,记住不是程序启动的第一个页面leftmenu_drawer.html ,而是 在 leftmenu_drawer.html 的  appcan.ready()事件中 进行 appcan.window.open() 事件的页面 。我的程序中是 appcan.window.open("leftmenu", "leftmenu.html", 10, 256); 所以我要修改的就是 leftmenu.html 。打开它 找到 在 </body> 与 </html> 之间  找到 appcan.ready()事件 ,在此事件的最后一行,调用自定义的函数 addBackListener(); 接着 在appcan.ready()外面 ,写addBackListener() 函数的内容,如下:
function addBackListener() 
{
       //可以在这里加一句alter来判断是否被调用
       var plat = uexWidgetOne.getPlatform(); //判断平台类型
           if(plat)
           {
                 uexWindow.onKeyPressed=function(keyCode)
                 {
                   //alert("onKeyPressed keyCode:" + keyCode);
                   if(keyCode==0)
                      uexWidgetOne.exit(); //关键在这句 ,如果遇到返回键,就触发结束应用事件 。据说在早期IDE中需要在线打包才能生效,

                                                         //现在的版本 v3.2.1 ,测试本地打包,该函数有效 。
                  }
                 //alert("addBackListener setReportKey");
                 uexWindow.setReportKey(0,1);
           } 

}。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值