uniapp app端常见坑

news2024/11/18 9:42:29

文章目录

  • uniapp app端常见坑
    • 页面内容出现在状态栏
    • 数据持久化问题
    • 项目初始化跳转登录页闪屏的问题
  • 总结


uniapp app端常见坑

本文主要记录在uniapp-vite-vue3项目app端出现的常见问题

页面内容出现在状态栏

当在page.json设置 “navigationStyle”:“custom” 取消原生导航栏后,由于窗体为沉浸式,占据了状态栏位置。此时可以使用一个高度为 var(–status-bar-height) 的 view 放在页面顶部,避免页面内容出现在状态栏。官网也有解决方案解决方案

数据持久化问题

在项目中使用了pinia数据持久化插件,在h5端使用正常,在app端无效果,目前解决方案是使用官方提供的数据缓存API数据缓存API

项目初始化跳转登录页闪屏的问题

在app第一次启动时需要判断用户是否登录,如果没有登录则需要跳转到登录页面,如果开启了自动关闭启动界面的配置,就会看到从首页闪到登录页面的问题,根据官方的配置说明来看,alwaysShowBeforeRender 为true时 首页渲染完成后再关闭启动界面,页面会直接先渲染首页在跳转登录页面,导致界面会闪一下。所以只需要关闭与这个相关的配置,又开发者手动控制关闭启动界面就能解决
manifest.json中修改

{
    "name" : "",
    "appid" : "",
    "description" : "",
    "versionName" : "1.0.0",
    "versionCode" : "100",
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
        "usingComponents" : true,
        "nvueStyleCompiler" : "uni-app",
        "compilerVersion" : 3,
        "splashscreen" : {
            "alwaysShowBeforeRender" : false,
            "waiting" : false,
            "autoclose" : false,
            "delay" : 0
        },
        /* 模块配置 */
        "modules" : {},
        /* 应用发布信息 */
        "distribute" : {
            /* android打包配置 */
            "android" : {
                "permissions" : [
                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                    "<uses-feature android:name=\"android.hardware.camera\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                ]
            },
            /* ios打包配置 */
            "ios" : {},
            /* SDK配置 */
            "sdkConfigs" : {}
        },
        "compatible":{
            "ignoreVersion":true // 解决打包app后运行弹出Html5+ Runtime 的弹框
        }
},
    /* 快应用特有相关 */
    "quickapp" : {},
    /* 小程序特有相关 */
    "mp-weixin" : {
        "appid" : "",
        "setting" : {
            "urlCheck" : false
        },
        "usingComponents" : true
    },
    "mp-alipay" : {
        "usingComponents" : true
    },
    "mp-baidu" : {
        "usingComponents" : true
    },
    "mp-toutiao" : {
        "usingComponents" : true
    },
    "uniStatistics": {
        "enable": false
    },
    "vueVersion" : "3"
}

在这里插入图片描述
然后在APP.vue中修改

  onLaunch(() => {
    console.log('App Launch');
    //获取已保存在本地的用户信息,该内容在登录页面登录成功之后,才保存到本地的
    const userInfo = uni.getStorageSync('user-info');
    if (!JSON.parse(userInfo || null)?.isSetUser) {
      uni.reLaunch({
        url: '/pages/login/index',
        success: () => {
          //#ifdef APP-PLUS
          plus.navigator.closeSplashscreen();
          // #endif
        },
      });
    } else {
      //#ifdef APP-PLUS
      plus.navigator.closeSplashscreen();
      // #endif
    }
  });

在这里插入图片描述

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/695830.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring进阶学习(附面试快速答法)

文章目录 1、Bean线程安全问题小总结面试快速答法 2、AOP小总结面试快速答法 3、bean的生命周期小总结面试快速答法 4、循环引用小总结面试快速答法 &#xff15;、SpringMVC的执行流程小总结面试快速答法 6、Springboot自动配置原理小总结面试快速答法 7、Spring框架常见注解面…

初步学习使用Mybatis框架

mybatis框架是一款半自动的ORM持久层框架&#xff0c;具有较高的SQL灵活性 所谓半自动的ORM持久层框架&#xff0c;是因为用mybatis进行开发&#xff0c;需要手动编写。而全自动的ORM框架&#xff0c;如hibernate&#xff0c;则不需要编写SQL语句。 对于mybatis&#xff0c;就…

五、云尚办公-菜单管理

云尚办公系统&#xff1a;菜单管理 B站直达【为尚硅谷点赞】: https://www.bilibili.com/video/BV1Ya411S7aT 本博文以课程相关为主发布&#xff0c;并且融入了自己的一些看法以及对学习过程中遇见的问题给出相关的解决方法。一起学习一起进步&#xff01;&#xff01;&#x…

PLC选择指南:西门子还是三菱?

选择适合自己的PLC涉及多个因素&#xff0c;包括项目要求、技术要求、可用性、支持和个人偏好。西门子和三菱是两个知名的PLC制造商&#xff0c;它们都有自己的优势和特点。以下是一些考虑因素&#xff1a; 我这里刚好有plc、嵌入式、单片机的资料需要的可以私我或在评论区扣6…

tp使用layui友好显示修改状态功能

之前找了很多次,然后经过自己的总结,这里记录一下 html部分 <a href"{:url(admin/merchant/make_merchant_erweima,[id>$vo[id]])}" class"layui-btn layui-btn-normal layui-btn-sm ajax-change">二维码</a> 重点是添加上ajax-change的…

别再用查询count,判断数据是否存在了

目录 一、目前多数人的写法 二、优化方案 三、总结 大家在实际的开发过程中&#xff0c;会根据某些条件&#xff0c;从数据库表中查询出是否存在符合该条件的数据。无论是刚入行的程序员小白&#xff0c;还是久经沙场多年的程序员老白&#xff0c;都是一如既往的SELECT count(*…

Faster Segment Anything: Towards Lightweight SAM for Mobile Applications

Faster Segment Anything: Towards Lightweight SAM for Mobile Applications SAM代码&#xff1a;https://github.com/ChaoningZhang/MobileSAM SAM论文&#xff1a;https://arxiv.org/pdf/2306.14289.pdf 1 概述 Faster SAM的目标是通过用轻量级图像编码器取代笨重的图像编…

HTML点击显示、点击隐藏details 标签

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body><details> <summary>Copyright 1999-2011.</summary> <p> - by Refsnes Da…

通过阿里云函数计算FC实现音视频转码

1.进入阿里云函数计算FC页面 2.创建音视频转码应用 可以看到代码&#xff0c;看到相关的传参 3.进行测试 编辑测试参数&#xff0c;使用账号的OSS中的资源 点击测试函数进行测试 可以在OSS中看到生成的mp4格式的视频了 测试后发现函数计算可以使用 4. 接下来就是在项目中通过代…

力姆泰克小型电动推杆LAM

小型电动推杆 高强度工程塑料的蜗轮或者粉末冶金齿轮 向下翻动查看更多 力姆泰克小型电动推杆LAM 系列大量采用铝合金壳体&#xff0c;伸缩管等零部件&#xff0c;和部分高强度工程塑料的蜗轮或者粉末冶金齿轮&#xff0c;设计开发出专门应用在医疗&#xff0c; 办公家具&am…

Linux操作系统通过实战理解CPU上下文切换

前言&#xff1a;Linux是一个多任务的操作系统&#xff0c;可以支持远大于CPU数量的任务同时运行&#xff0c;但是我们都知道这其实是一个错觉&#xff0c;真正是系统在很短的时间内将CPU轮流分配给各个进程&#xff0c;给用户造成多任务同时运行的错觉。所以这就是有一个问题&…

Redis实战案例3-缓存概念和添加Redis缓存

1. 缓存 缓存是数据交换的缓冲区&#xff0c;是贮存数据的临时地方&#xff0c;一般读写性能较高&#xff1b; 其中数据库缓存&#xff0c;例如&#xff1a;索引数据&#xff0c;MySQL会给id创建索引&#xff0c;从而查询时可以在内存中快速检索&#xff0c;提升速度&#xff1…

MDK指定.sct(分散加载描述文件)文件位置

文章目录 MDK指定.sct(分散加载描述文件)文件位置概述END MDK指定.sct(分散加载描述文件)文件位置 概述 用STM32CubeMX生成的工程, 默认的.sct位置在临时输出目录, 里面都是.o. 都是工程编译时生成的临时文件(中间文件) 当工程归档时, 这个临时目录肯定是要删除的(编译过程…

用ThinkJs框架快速搭建博客网站

ThinkJS是一个企业级的NodeJS应用框架&#xff0c;整合了各种常用SDK以及企业级常用的技术方案&#xff0c;为减少了开发人员的学习成本&#xff0c;提高团队的开发效率而生。框架底层基于Koa2实现&#xff0c;并且结合ThinkPHP的思想&#xff0c;使代码更加简洁实用。 ThinkVu…

Dependency ‘io.spring.platform:platform-bom:Cario-SR7‘ not found

刚看到这个错的时候&#xff0c;以为是maven中需要配置aliyun镜像的缘故&#xff0c;所以&#xff0c;在/conf/settings.xml中加入了aliyun镜像&#xff1a; <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.al…

智能优化算法六种常见图—参数空间图、搜索历史图、第一维度轨迹图、多样性曲线、平均适应度曲线、收敛曲线图(以黏菌算法为例)

一、基本介绍&#xff1a; 智能优化算法六种常见图绘制—参数空间图、搜索历史图、第一维度轨迹图、多样性曲线、平均适应度曲线、收敛曲线图。一篇文章有几张高颜值的图片&#xff0c;能给审稿人留下良好的第一印象。以上这些图像均可用于仿真实验中。各图像功能如下&#xf…

五个维度,解析 Spring 中 @Autowired 和 @Resource 的区别

Autowired注解是由Spring提供的&#xff0c;它可以用来对构造方法、成员变量及方法参数进行标注&#xff0c;它能够根据对象类型完成自动注入&#xff0c;代码如下&#xff1a; public class Service {// 构造方法注入Autowiredpublic Service(Service service) {this.service…

实现一个转盘随机选择器

实现效果 完整代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title><…

Java的Stream流详细讲解

一.Stream 是什么 Stream是Java 8新增的重要特性, 它提供函数式编程支持并允许以管道方式操作集合. 流操作会遍历数据源, 使用管道式操作处理数据后生成结果集合, 这个过程通常不会对数据源造成影响。 ​ 同时stream不是一种数据结构&#xff0c;它只是某种数据源的一个视图&…

Neo4j desktop在界面上使用dump备份还原

Neo4j数据库的版本在4.4版本中有dump &#xff08;Neo4j 3.5的版本没有dump文件&#xff09;&#xff0c;选中某个数据库可以使用dump导出一个.dump文件。 导出后的文件 导入dump文件&#xff0c;创建新的数据库