少走弯路:uniapp里将h5链接打包为apk,并设置顶/底部安全区域自动填充显示,阻止webview默认全屏化

少走弯路:uniapp里将h5链接打包为apk,并设置顶/底部安全区域自动填充显示,阻止webview默认全屏化

文章目录

一、情况描述

我想实现的效果很简单:

将一个h5链接(如:https://mobile.baidu.com),用uniapp打包为一个apk,相当于浏览器外面套个壳,这样就可以安卓手机上进行安装了。

但是,在实际操作过程中,我遇到了:
1.由于webview组件会自动全屏化显示,导致手机顶部被刘海屏/摄像头等挡住了;
2.如果用原生标题栏,可以自动解决顶部安全区域,但又会太丑;

所以,如果能找个解决方案,解决上述几个痛点,就完美了。

话不多说,开干~

二、解决方法

首先,创建一个 index.vue 页面,输入代码:
<template><view><web-viewsrc="https://mobile.baidu.com"></web-view></view></template><script>exportdefault{data(){return{}}};</script>
应该大功告成了!
还是看下效果吧:
在这里插入图片描述
可以看到:
· 蓝色圆圈是手机的摄像头;
· 红框部分是标题栏,占用了很大一部分面积,而且太丑了,不是很理想。
在这里插入图片描述
我们来改一下:
pages.json 文件里,style下,加上下面的代码,去掉标题栏
"navigationStyle":"custom"
看看效果:
在这里插入图片描述
可以看到:虽然标题栏没有了,但状态栏和webview内容重叠了,效果也不理想。

如果能把webview的top,设置高度为状态栏的高度,不就能完美解决吗?

好思路,看码:
我们在 onReady 事件里面加上如下代码:
var systemInfo = uni.getSystemInfoSync()// #ifdef APP-PLUS//此对象相当于html5plus里的plus.webview.currentWebview()。//在uni-app里vue页面直接使用plus.webview.currentWebview()无效var currentWebview =this.$scope.$getAppWebview()setTimeout(function(){ wv = currentWebview.children()[0] wv.setStyle({ top: systemInfo.safeArea.top, height: systemInfo.safeArea.height })},150);//如果是页面初始化调用时,需要延时一下// #endif
运行看下效果:
在这里插入图片描述
AUV,大功告成啦!!!

如果你想让webview组件加载的时候自定义进度条颜色,还可以加上如下代码:

页面:

<web-view:webview-styles="webviewStyles"src="https://mobile.baidu.com"></web-view>

Data:

webviewStyles:{ progress:{ color:'#b1cbf7'}}

最后,附上完整代码:
<template><view><web-view:webview-styles="webviewStyles"src="https://mobile.baidu.com"></web-view></view></template><script>var wv;//计划创建的webviewexportdefault{data(){return{ webviewStyles:{ progress:{ color:'#b1cbf7'}}}},onReady(){var systemInfo = uni.getSystemInfoSync()// #ifdef APP-PLUS//此对象相当于html5plus里的plus.webview.currentWebview()。//在uni-app里vue页面直接使用plus.webview.currentWebview()无效var currentWebview =this.$scope.$getAppWebview()setTimeout(function(){ wv = currentWebview.children()[0] wv.setStyle({ top: systemInfo.safeArea.top, height: systemInfo.safeArea.height })},150);//如果是页面初始化调用时,需要延时一下// #endif}};</script>

都看到这里了,各位帅哥/美女,不管有用没用,都帮忙点个赞呗,❤️谢谢~


Author吴所畏惧 2025.12.05

Read more

FPGA 50 ,Xilinx Vivado 2020 版本安装流程,以及常见问题解析,附中文翻译( Vivado 2020 版本安装教程 )

FPGA 50 ,Xilinx Vivado 2020 版本安装流程,以及常见问题解析,附中文翻译( Vivado 2020 版本安装教程 )

前言 Xilinx 统一安装程序(Unified Installer) 是进行 FPGA 与异构计算平台开发的重要基础工具,集成了 Vivado、Vitis 以及相关文档与设备支持组件。正确完成安装是后续进行硬件设计、软件开发与系统验证的前提。 本文以 Xilinx 统一安装程序 2020.1 为例,结合实际安装过程,对 安装步骤 进行逐步说明,并对 关键选项 的含义进行必要解释。同时,针对安装过程中可能出现的 常见错误(如归档文件无法打开、安装中断等问题),给出原因分析与解决建议,帮助用户快速定位并解决问题。 需要注意的是,安装文件的完整性与安装环境的稳定性对安装成功率影响较大。若安装过程中出现异常,建议优先检查 安装包是否完整、磁盘空间是否充足以及系统权限与安全软件设置是否合理。希望本文能够为初次接触 Xilinx 工具 或在安装过程中遇到问题的用户提供参考和帮助。

【国内电子数据取证厂商龙信科技】大疆无人机如何导出日志并解析

【国内电子数据取证厂商龙信科技】大疆无人机如何导出日志并解析

一、前言 我们在提取无人机数据的时候,可能会遇到由于无人机自身没有存储介质从而导致无法对无人机进行镜像解析数据的情况,今天给大家讲解下如何通过无人机自带的功能界面导出日志并解析。 二、对于没有存储介质的无人机设备如何导出日志 2.1安装软件 一般来说,无人机官方都有配套的查看工具。我们以大疆无人机为例,首先我们需要在计算机上安装大疆厂商官方发布的软件DJl Assistant2 For Mavic工具。 2.2连接设备 将无人机设备用usb线连接至电脑 打开DJl Assistant2 For Mavic工具 2.3导出日志 设备连接上后可以看见日志导出模块,可以将日志全选或者根据需要的时间段进行选择,勾选上点击下载到本地即可。 导出之后,即是dat文件 将dat日志导入到龙信物联网取证系统 LX-A501-V1进行解析。 打开龙信物联网取证系统 LX-A501-V1软件——新建案件 选择正确的设备类型、品牌 提取方式选择文件——添加文件选择我们导出的日志 开始取证——等待解析完成即可 解析完成后即可查看数据,包含设备基本

宇树 G1 机器人开发入门:有线 & 无线连接完整指南

宇树 G1 机器人开发入门:有线 & 无线连接完整指南

适用读者:机器人二次开发者、科研人员 开发环境:Ubuntu 20.04(推荐) 机器人型号:Unitree G1 EDU+ 前言 宇树 G1 是一款面向科研与商业应用的高性能人形机器人,支持丰富的二次开发接口。在正式进行算法调试与功能开发之前,首要任务是建立稳定的开发连接。本文将详细介绍两种主流连接方式:有线(网线直连) 与 无线(WiFi + SSH),并附上完整的配置流程,帮助开发者快速上手。 一、有线连接(推荐新手优先使用) 有线连接通过网线直接将开发电脑与 G1 机器人相连,具有延迟低、稳定性高、不依赖外部网络的优势,是新手入门和底层调试的首选方式。 1.1 前置条件 所需物品说明开发电脑推荐安装 Ubuntu 20.04,或在 Windows 上使用虚拟机宇树 G1 机器人确保已开机且处于正常状态网线(

保姆级教程:Windows下安装OpenClaw + 接入飞书机器人,看这一篇就够了!

文章目录 * 前言 * ⚠️ 重要提示:隐私安全优先 * 第一部分:Windows环境准备 * 1.1 系统要求 * 1.2 安装nvm for Windows(推荐) * 1.3 安装Node.js 22.x版本 * 第二部分:安装OpenClaw * 2.1 一键安装脚本(推荐) * 2.2 初始化配置 * 2.3 启动服务并验证 * 第三部分:配置大模型API(核心前提) * 第四部分:飞书机器人配置(核心步骤) * 4.1 安装飞书插件 * 4.2 创建飞书企业自建应用 * 4.3 添加机器人能力 * 4.4