当前位置: 首页 > news >正文

uniapp项目实践总结(二十二)分包优化和游客模式

导语:这篇主要介绍应用分包和游客模式相关的内容。

目录

  • 应用分包
  • 游客模式

应用分包

微信对于小程序的打包压缩后的代码体积是有限制的,网页和 APP 也可以适用分包功能,因此需要进行分包添加以及分包优化。

分包添加

pages.json文件中添加分包的信息。例如:有一个名叫user的分包,里面有一个文件是index.vue,那么分包配置就是:

{"pages": [{"path": "pages/index/index","style": {"navigationBarTitleText": "首页"}}],"subPackages": [{"root": "user","pages": [{"path": "index","style": {"navigationBarTitleText": "分包首页"}}]}]
}

配置完成后该文件的访问地址就是/user/index,其中的user是在根目录下存放的。

分包优化

添加配置

分包优化的方法是在manifest.json文件中对应的平台添加以下配置:

例如:mp-weixin平台下添加分包优化。

{"mp-weixin": {"optimization": {"subPackages": true}}
}
注意事项
  • 目前只支持mp-weixinmp-qqmp-baidump-toutiaomp-kuaishou的分包优化;
  • 分包目录内放置的静态资源不会被打包到主包中,也不可在主包中使用;
  • 当某个 js 仅被一个分包引用时,该 js 会被打包到该分包内,否则仍打到主包(即被主包引用,或被超过 1 个分包引用);
  • 若某个自定义组件仅被一个分包引用时,且未放入到分包内,编译时会输出提示信息;
微信小程序

目前微信小程序分包大小有以下限制:

  • 整个小程序所有分包大小不超过 20M;
  • 单个分包/主包大小不能超过 2M;

游客模式

在一些平台,比如微信小程序和苹果 ios 应用商店,上架的应用一定要提供游客模式才可以进行审核通过。

如何实现游客模式呢,下面就来简单实现一下。

服务端配置

可以通过动态配置来打开或关闭游客模式。

例如:默认开启游客模式。

{"vistor": true
}

客户端配置

客户端根据服务端的配置来设置是否开启游客模式。

逻辑分析
  • 开启游客模式后,启动应用就应该可以进入到应用程序的主页面,然后可以随意游览和使用,当遇到需要登录才能访问的地方,再跳转到登录页面;
  • 关闭游客模式后,启动应用后需要先登录账号,然后才可以访问应用内的页面或者使用应用提供的服务和功能;
设置缓存

启动应用获取服务端配置后可以设置缓存数据:

// 接口获取到的数据
let config = {vistor: true,
};
// 存入本地
uni.setStorage("vistor", config.vistor);
获取缓存

在要访问的页面触发需要登录才能使用的功能之前,先判断是否开启了游客模式,如开启再提示并跳转登录。

// 获取本地游客模式
let vistor = uni.getStorage("vistor");
// 获取接口,如返回401,则需要登录
let login = true;
// 游客模式已开启并且需要登录则跳转登录界面
if (vistor && login) {uni.navigateTo({url: "/pages/login",});
}

最后

以上就是分包优化和游客模式的主要内容,有不足之处,请多多指正。

相关文章:

uniapp项目实践总结(二十二)分包优化和游客模式

导语:这篇主要介绍应用分包和游客模式相关的内容。 目录 应用分包游客模式 应用分包 微信对于小程序的打包压缩后的代码体积是有限制的,网页和 APP 也可以适用分包功能,因此需要进行分包添加以及分包优化。 分包添加 在pages.json文件中…...

Unity中UI组件对Shader调色

文章目录 前言一、原理在Shader中直接暴露的Color属性,不会与UI的Image组件中的Color形成属性绑定。因为UI的Image组件中更改的颜色是顶点颜色,如果需要在修改组件中的颜色时,使Shader中的颜色也同时改变。那么就需要在应用程序阶段传入到顶点…...

PhpStorm 2023年下载、安装教程和好用插件,保姆级教程

PhpStorm 2023年下载、安装教程和好用插件,保姆级教程 文章目录 PhpStorm 2023年下载、安装教程和好用插件,保姆级教程前言一、安装PhpStorm二、好用的插件简体中文包Chinese(Simplified)Language Pack 三、卸载插件CTRLN 查找类CTRLSHIFTN 全局搜索文件…...

1960-2017年世界各国总和生育率数据

1960-2017年世界各国总和生育率数据 1、时间:1960-2017年 2、指标:生育率 3、范围:全球各国 4、来源:世界银行 5、指标解释: 总生育率表示假设妇女度过整个生育期并按照当期的年龄别生育率生育孩子所生育的孩子数…...

java.math.BigDecimal is not a supported Java type

文章目录 问题描述:结果:原因:Thrif支持的数据类型解决:规范 问题描述: 前端查询后端的pcs总数字段,此字段需要从mydsql的db中获取。PCS字段类型为decimal(26,6),于是打算在response中使用 Big…...

Unity之Hololens开发如何实现UI交互

一.前言 什么是Hololens? Hololens是由微软开发的一款混合现实头戴式设备,它将虚拟内容与现实世界相结合,为用户提供了沉浸式的AR体验。Hololens通过内置的传感器和摄像头,能够感知用户的环境,并在用户的视野中显示虚拟对象。这使得用户可以与虚拟内容进行互动,将数字信…...

二、ubuntu主机端tftp及nfs服务开发环境安装

一.主机端tftp服务环境安装及配置 检查是否已经安装tftp server $dpkg -s tftpd-hpa#如果提示未安装服务,则执行下面安装指令$sudo apt-get install tftpd-hpa tftp-hpa#tftpd-hpa服务端 tftp-hpa客户端创建tftp启动目录,用于存放内核与设备树文件&a…...

Android 12修改usb tp触摸唤醒

前言 Android 12系统休眠时,需要不管接什么型号usb tp都能够触摸唤醒。 Android12系统中,usb tp要能够触摸唤醒,需要在frameworks/native/services/inputflinger/reader/mapper/TouchInputMapper.cpp中将mParameters.wake赋值为true&#xff…...

#define定义标识符详解

0.预定义符号 在讲解#define之前先给大家介绍几个预定义符号 __FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循ANSI C(标准C)&#xff…...

开发者必备!如何将闲置iPad Pro打造为编程工具,使用VS Code编写代码

文章目录 前言1. 本地环境配置2. 内网穿透2.1 安装cpolar内网穿透(支持一键自动安装脚本)2.2 创建HTTP隧道 3. 测试远程访问4. 配置固定二级子域名4.1 保留二级子域名4.2 配置二级子域名 5. 测试使用固定二级子域名远程访问6. ipad pro通过软件远程vscode6.1 创建TCP隧道 7. ip…...

【Java 基础篇】Java 模块化详解

Java 9引入了一项重要的功能:模块化(Module System)。模块化是一种将代码和资源封装到可重用和独立的单元中的方法,它有助于改善代码的可维护性、可重用性和安全性。本文将介绍Java模块化的基本概念、如何创建和使用模块以及一些最…...

【2023面试题大全,都是常问面试题】

JAVA基础 面向对象和面向过程的区别 面向过程:基于步骤的编程方式,用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可 面向对象:基于对象的编程方式,通过定义类来描述对象的属性和行为,面向对…...

Bun 1.0 正式发布,爆火的前端运行时,速度遥遥领先!

文章目录 一、包子1.0二、Bun 是一个一体化工具包为什么包子存在 二、Bun 是一个 JavaScript 运行时Node.js 兼容性速度TypeScript 和 JSX 支持ESM 和 CommonJS 兼容性网络 API热重载插件 一、包子1.0 Bun 1.0终于来了。 Bun 是一个快速、一体化的工具包,用于运行…...

getchar函数设置为非阻塞

一. 前言 我们在学习C语言的时候,getchar都是阻塞的,等待用户输入字符并且输入回车后才返回。但是有时候我们希望把getchar设置为非阻塞,或者说,当我们遇到getchar函数变成非阻塞的了,我们应该怎么解决这个问题&#x…...

【超算作业调度系统--LSF】

集群服务器--LSF作业调度系统使用 0 Introdutction1 命令1.1 bsub--作业提交命令1.1.1 $ bqueues --查看现有队列信息;1.1.2 $lsload --查看各节点运行情况1.1.3 $bhosts --查看各节点空闲情况1.1.4 $busers --查看用户信息1.2 bsub --提交作业1.2.1 bsub OMP_NUM_T…...

L1-011 A-B分数 20

本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。 输入格式: 输入在2行中先后给出字符串A和B。两字符串的长度都不超过104,并且保证每个字符…...

PHPword解析内容支撑

因有些功能不支持,所以新增了某些功能,以防后期变动不好变更,手动做个记录 将公式替换成指定的符号,读取到 html 后读取 xml 解析公式,根据标记符号进行替换 文件名PhpOffice\PhpWord\Shared\XMLReader.php public fun…...

回归预测 | MATLAB实现RUN-XGBoost龙格库塔优化极限梯度提升树多输入回归预测

回归预测 | MATLAB实现RUN-XGBoost多输入回归预测 目录 回归预测 | MATLAB实现RUN-XGBoost多输入回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现RUN-XGBoost多输入回归预测(完整源码和数据) 1.龙格库塔优化XGBoost,…...

LLM-TAP随笔——语言模型训练数据【深度学习】【PyTorch】【LLM】

文章目录 3、语言模型训练数据3.1、词元切分3.2、词元分析算法 3、语言模型训练数据 数据质量对模型影响非常大。 典型数据处理:质量过滤、冗余去除、隐私消除、词元切分等。 训练数据的构建时间、噪音或有害信息情况、数据重复率等因素都对模型性能有较大影响。训…...

Linux- open() lseek()

文件描述符 文件描述符(File Descriptor,简称 FD)是 UNIX 和 UNIX-like 系统中用于代表和识别打开的文件或其他I/O资源的一种抽象标识。它是一个非负整数,内部由操作系统进行管理和分配。文件描述符可以代表文件、套接字、管道等…...

告别写死地址!CH32V IAP升级实战:用函数传参实现APP跳转地址的动态配置

CH32V IAP升级进阶:动态跳转地址的工程实践与安全设计 在嵌入式开发中,IAP(In-Application Programming)技术是实现固件远程更新的重要手段。对于CH32V系列RISC-V MCU而言,官方示例中"写死"跳转地址的做法虽…...

Omni-Vision Sanctuary 在 Proteus 仿真中的应用:智能电路设计与调试助手

Omni-Vision Sanctuary 在 Proteus 仿真中的应用:智能电路设计与调试助手 1. 电子工程师的新助手 作为一名电子工程师,你是否经历过这样的场景:面对一个功能需求,花了大量时间查阅资料却找不到合适的电路方案;仿真波…...

Oracle 数据库中的 REF 类型与触发器的使用

在 Oracle 数据库中,引用类型(REF)是对象类型之间关联的一种强大工具。特别是在复杂的企业应用中,REF 类型可以帮助我们建立对象间的引用关系,模拟现实世界的关系模型。本文将通过一个实际的例子,介绍如何在 Oracle 中使用 REF 类型,以及如何通过触发器(Trigger)来确保…...

以采购管理系统为例,构建多角色AI智能体协作系统

成果演示(基于 Trae Solo) 1.构建智能体Trae Solo 支持智能生成智能体,输入角色及职能描述,即可得到角色智能体。在此构建需求分析智能体、架构设计智能体、前端智能体、后端智能体进行演示。2.创建任务 本文依照需求分析、架构设…...

Linux内核核心机制与开发实践详解

1. Linux内核概述与预备知识Linux内核作为操作系统的核心组件,承担着管理硬件资源、提供系统服务的关键角色。要深入理解Linux内核,需要具备以下基础知识储备:C语言能力:内核代码90%以上由C语言编写,需掌握指针操作、内…...

Legacy iOS Kit终极指南:让你的旧iPhone/iPad重获新生!

Legacy iOS Kit终极指南:让你的旧iPhone/iPad重获新生! 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-i…...

Windows双网卡路由配置实战:内外网高效并行访问指南

1. 为什么需要双网卡并行访问内外网? 在企业办公环境中,我们经常遇到这样的场景:电脑需要同时连接内网处理公司业务系统,又要访问外网查询资料或使用云服务。如果频繁切换网络,不仅效率低下,还可能因为操作…...

数学解题能力实测:通义千问QwQ-32B vs Claude 3.5 Sonnet,谁才是理科生最佳AI助手?

数学解题能力实测:通义千问QwQ-32B vs Claude 3.5 Sonnet,谁才是理科生最佳AI助手? 当一道复杂的AIME竞赛题摆在面前时,你会选择哪种AI助手?是擅长分步推导的开源新秀QwQ-32B,还是以逻辑严谨著称的Claude 3…...

EZSwiftExtensions 性能优化技巧:让你的扩展运行更快更稳定

EZSwiftExtensions 性能优化技巧:让你的扩展运行更快更稳定 【免费下载链接】EZSwiftExtensions :smirk: How Swift standard types and classes were supposed to work. 项目地址: https://gitcode.com/gh_mirrors/ez/EZSwiftExtensions EZSwiftExtensions …...

EcomGPT-7B模型文件结构与代码解读:从Hugging Face到生产部署

EcomGPT-7B模型文件结构与代码解读:从Hugging Face到生产部署 如果你已经玩过一些开箱即用的AI模型,可能会好奇,一个像EcomGPT-7B这样的模型,它到底是由哪些文件组成的?那些配置文件里密密麻麻的参数都是什么意思&…...