微信小程序基础库的介绍与更改

news2024/11/27 22:46:51

一、什么是基础库?

1、基础库是小程序运行的必要环境,我们的开发主要就是面向基础库开发的。基础库封装了微信和手机的能力并提供给小程序使用,我们使用基础库提供的组件和API开发起来非常的方便。

2、基础库存在于我们的微信客户端中,它和微信一样,也有其自己的版本,每个版本都会有一些新特性。微信官方为了使得基础库的版本和微信的版本同步,采取了一个微信版本对应一个基础库版本的方式。这就使得用户在更新最新版本的微信时也能更新至最新版本的基础库。带来的优点就是用户的基础库都是最新版本的。

二、小程序是运行在基础库上的吗?

1、认为小程序是要运行在微信客户端上的,这么说似乎没什么问题,但也不严谨。相比于微信客户端那么大的一个概念,客户端中绑定的基础库更像是小程序的SDK。他封装微信和手机功能的同时也使得开发者能够屏蔽微信版本和手机系统的差异。

2、如果从开发者的视野看,说小程序运行在基础库上也没什么问题,因为开发了一段时间后发现基础库并不是一块厚实的棉被,并不能把底层(微信和手机)的一切功能的包裹的严严实实。比如小程序的提示框在不同的微信版本则有不同的样式,又比如JS代码中的new Data(“2023-7-6 12:34:00”)在Android手机上能成功解析,在iOS上则会报错

那究竟是什么原因会让JS代码在不同的手机系统上出现不同的结果呢?

顺着这条线,先是找到了运行JS代码的浏览器内核,如:IE浏览器的Trident内核,Safari和Chrome的Webkit内核,还有火狐使用的Gecko内核。但继续了解后又发现,浏览器最核心的其实分为两部分:渲染引擎(Rendering Engine)和JS引擎。

IE浏览器的Trident内核,Safari和Chrome的Webkit内核,火狐的Gecko内核其实都是渲染引擎,真正解析JS代码的则是JS引擎。查了文档后才发现:

微信小程序运行在多种平台上:iOS(iPhone/iPad)微信客户端、Android 微信客户端、PC 微信客户端、Mac 微信客户端和用于调试的微信开发者工具。

各平台脚本执行环境以及用于渲染非原生组件的环境是各不相同的:

在 iOS 上,小程序逻辑层的 javascript 代码运行在 JavaScriptCore 中,视图层是由 WKWebView 来渲染的,环境有 iOS 12、iOS 13 等

在 Android 上,小程序逻辑层的 javascript 代码运行在 V8 中,视图层是由自研 XWeb 引擎基于 Mobile Chrome 内核来渲染的

在 开发工具上,小程序逻辑层的 javascript 代码是运行在 NW.js 中,视图层是由 Chromium Webview 来渲染的

也就是说基础库并不能解决小程序的一切问题。JS代码的解析和页面的渲染都要调用手机系统的浏览器内核。这么看来基础库只能算是一个调度资源的调度器,将小程序需要的资源经过简单的封装然后调度过去而已。

按照这样的思路,小程序并不是运行在基础库上的。可以说:小程序是通过基础库运行在手机及微信上的

三、设置小程序基础库的最低可用版本

用以解决某些低版本库不支持某些api方法导致的问题

在小程序管理后台的 设置 -> 基本设置 -> 版本设置 可以设置一个基础库最低可用版本;还可以设置小程序最低可用版本。

注:在小程序开发工具的 详情 -> 本地设置 -> 调试基础库(这里选择的基础库仅仅是测试环境调试用,并不是配置到代码的基础库,更不会影响到真实用户的手机微信下的版本库。用户的微信小程序基础版本库,只是取决于用户的手机微信版本,微信版本越高越新,基础版本库也就越高越新)

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

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

相关文章

骑行,怎么样才能安全的下坡?

大家好,今天我们来聊聊自行车运动中的一个重要话题:如何安全地骑行下坡? 首先,我们要明白,安全下坡的秘诀在于控制。一是速度的控制,二是自身姿势的控制。就像一只灵活的狐狸,既要控制好自己的速…

Excel表格套用格式后分类汇总用不了解决方法之一

表格套用格式选择表格后分类汇总显示灰色不可用,如下图: 解决方法之一:右键-表格-转为区域,确定

如何部署LVS负载均衡集群(NAT模式)

目录 一、集群 负载均衡集群(Load Balance Cluster) 高可用集群(High Availability Cluster) 高性能运算集群(High Performance Computer Cluster) 二、负载均衡工作模式 VIP地址特性(虚拟…

剑指offer(C++)-JZ40:最小的K个数(算法-排序)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,…

1.1 熟悉x64dbg调试器

x64dbg 是一款开源、免费、功能强大的动态反汇编调试器,它能够在Windows平台上进行应用程序的反汇编、调试和分析工作。与传统的调试器如Ollydbg相比,x64dbg调试器的出现填补了Ollydbg等传统调试器的不足,为反汇编调试工作提供了更高效、更可…

Python 中的 JSON 操作:简单、高效的数据交换格式

目录 1. JSON 数据格式 2. Python 操作 JSON 文件 2.1 JSON 反序列化为 Python 对象 2.2 Python 序列化为 JSON 3 工作中的常见场景 3.1 网络请求和响应 服务器端(Python): 客户端(JavaScript): 3…

5G三防平板电脑有哪些功能与特点

随着科技的不断进步,平板电脑已经成为许多人生活中必不可少的设备之一。而随着5G技术的全面普及,5G三防平板电脑也应运而生。这些平板电脑集成了内置高通八核处理器搭配Adreno GPU,搭载全新Android 11操作系统,以及提供多应用切换…

docker-compose实现微服务jar+mysql的容器服务发布(经典版)

一 安装mysql服务 1.1 拉取镜像 1.拉取: docker pull mysql:5.7.29 2.查看镜像: docker images 1.2 在宿主机创建文件存储mysql 1.创建映射目录:mysql-c5 在/root/export/dockertest 目录下,mkdir -p mysql-c5 &#…

Django proxy_view代理后端

某些需求下,需要通过Django代理后端,比如开发celery定时任务时候,需要代理后端的flower,代理后端可以直接使用Django自带的授权,方便权限控制 具体操作如下 1.安装 django-proxy 包,进行代理 pip install …

LVS负载均衡集群(DR)

目录 1.数据包流向 2.通信遇到的问题 1.ARP广播 导致所有节点服务器和调度器的VIP响应 2.VIP的调度器失效 3.案例 1. 配置负载调度器 2.部署共享存储 3. 配置节点服务器(这里是两台) 1.数据包流向 1.客户端发送请求到负载均衡器 请求的数据报文到达内核空间 2.负载均…

改进 Elastic Stack 中的信息检索:引入 Elastic Learned Sparse Encoder,我们的新检索模型

作者:Thomas Veasey,Quentin Herreros 在本博客中,我们讨论了我们一直在使用预先训练的语言模型增强 Elastic 开箱即用检索功能所做的工作。 在本系列的上一篇博客文章中,我们讨论了在零样本设置中应用密集模型进行检索的一些挑战…

全网最细,接口自动化测试hook机制使用详细,进阶高级...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 requests 库只支持…

Sa-Token,一款更加轻量的权限认证框架

今天给大家介绍一个轻量级 Java 权限认证框架,我们之前一直采用最多的鉴权框架是OAuth2.0或者SpringSecurity,但是两者的配置都相当复杂,学习成本也非常高,所以我一直在试图寻找更好的解决办法,这几天在搭建权限体系平…

密码学学习笔记(五):Hash Functions - 哈希函数1

简介 什么是密码学中的哈希函数? 哈希函数是一种快速算法,它接受任何长度的输入,并产生一个固定长度的随机输出,称为摘要(digest),比如: MD4, MD5: 128-bit output (broken) •SHA-1: 160-bit output (b…

Infinite Zoom 丝滑循环小视频生成方法

使用Infinite Zoom插件在Stable Diffusion中可以制作无限缩放效果视频的过程。 文章目录 插件安装插件功能Main选项卡Video选项卡OutpaintPost process 插件使用 插件安装 在Stable-Diffusion-webui安装Infinite Zoom插件。启动Stable-Diffusion-webui,选择扩展-从…

使用css的:before属性在文字前加短竖线

有时候我们需要在文字或者标题前加个短竖线&#xff0c;有的人会使用 border 来模拟一个竖线&#xff0c;其实大可不必&#xff0c;我们可以利用元素的 :before 属性来实现&#xff0c;效果如下&#xff1a; 具体的代码如下&#xff0c; HTML&#xff1a; <span class&quo…

【计算机网络】第 1 课 - 数据的三种交换方式

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、电路交换 3、分组交换 4、三种交换方式的对比 4.1、电路交换优点 4.2、电路交换缺点 4.3、报文交换优点 4.4、…

【抽象拓扑排序】ABC216 D

D - Pair of Balls (atcoder.jp) 题意&#xff1a; 有2*n个球&#xff0c;每个球涂n种颜色&#xff0c;每种颜色恰好涂两个球&#xff0c;把这些球放进m个栈里&#xff0c;每次操作可以弹出两个相同颜色的球&#xff0c;问是否存在方案使得将所有栈清空 思路&#xff1a; 注…

Day44——动态规划part6

完全背包 private static void testCompletePack(){int[] weight {1, 3, 4};int[] value {15, 20, 30};int bagWeight 4;int[] dp new int[bagWeight 1];for (int i 0; i < weight.length; i){ // 遍历物品for (int j weight[i]; j < bagWeight; j){ // 遍历背包…

2023.07.06 homework

1&#xff09;止水夹打开&#xff0c;连通器相通 2&#xff09;左侧水位高11cm 的水位下降 y cm 3&#xff09;右侧水位低 4cm 的水位上涨 x cm 4&#xff09;最终两边水位相等保持一个平面上 11cm - y 4cm x 5&#xff09;左侧的水下降的体积跑哪里去了&#xff0c;填到…