发布:2023-11-23 15:13:11 阅读:185
转载本资源必须注明出处,欢迎加入官群【445790831】
资源归属:快码FOF编程
资源状态:免费下载
部分时候,一些同学需要在框架层页面【例如:弹出层、选项卡】等页面中使用原生桌面命令,比如:数据库操作、文件操作等,这样的功能实现起来是比较繁琐的;更好的方案是直接打开多窗口
多窗口参考方案1:桌面端多窗口隐藏显示切换及关闭监听
多窗口参考方案2:桌面端多窗口案例
解说:因为多窗口是多进程模式,则每一个窗口之间都是独立的,所以可以随意使用原生桌面命令。
上面介绍了多窗口后,此时回到博客的主题上面来;有些同学说:我就头铁,我就想用选项卡和弹出层模式来操控原生桌面端命令!
当然也可以,只是实现起来会麻烦一些,下面教大家如何实现吧。
首先第一步,在项目配置器中开启【框架层NODE进程】属性
开启该属性后,就可以让弹出层、选项卡、框架页等子页面也能使用原生桌面端的命令。
但是重点来了;这个功能是electron的测试性命令之一,它有一个致命的缺点,那就是一旦启用后;框架页使用关闭命令就会导致整个窗口关闭!【原因是开启此选项后,框架页被视为与窗口一致的进程】
也就是说,大家使用:lay_弹出层.关闭()、或者使用浏览器基础库自带的:浏览器窗口.关闭()、又或者说使用选项卡的关闭,例如下图:
又或者说任何可能会用到"浏览器窗口.关闭()"的场景,都会导致当前窗口直接关闭!
大家是不是直接就懵了?那开启这个属性还怎么玩,不一样的属于间接性不能使用弹出层或者选项卡又或者框架标签么?毕竟总不可能只能打开,不能关闭吧?
这个时候又有一个新的办法解决该问题,那就是新增一个"窗口是否可关闭"的函数,该函数在窗口关闭前会触发,这个函数返回真窗口就可以关闭,否则返回假就不能关闭。
于是大家就可以在这里面做判断,比如弹出层打开后,就设置一个变量为假,然后以这个变量作为是否可关闭窗口的媒介。
例如:当打开弹出层后,这个变量为假;当关闭弹出层后;这个变量为真。
具体大家可下载本源码测试。
测试账号