微信小程序常用api使用

article/2025/10/5 22:15:23

        小程序提供了一个简单、高效的应用开发框架和丰富的组件及API,帮助开发者在微信中开发具有原生 APP 体验的服务。本文提及的案例为小程序搭建时常用种类,如需全面了解,可查阅官方文档(官网->首页->文档)。注意,查阅搜索时要输入api全称。

一、生命周期

1.1 小程序的生命周期

        小程序生命周期,在小程序根目录下app.js文件里设置。每个小程序都需要在 app.js 中调用 App 方法注册小程序实例,绑定生命周期回调函数、错误监听和页面不存在监听函数等。

        onError 小程序发送错误,用于提示与重启;

        onHide 后台运行,用于停止播放;

        onShow 前台展示,用于恢复播放;

        onLaunch 页面启动,用于本地存储,系统信息获取,登录获取code等。

App({onError(){console.log("小程序生命周期:onError小程序发送错误")},onHide(){console.log("小程序生命周期:onHide小程序后台运行")onShow(){console.log("小程序生命周期:onShow小程序前台展示")},onLaunch() {console.log("小程序生命周期:onLaunch小程序页面启动")// 展示本地存储能力const logs = wx.getStorageSync('logs') || []logs.unshift(Date.now())wx.setStorageSync('logs', logs)// 登录wx.login({success: res => {// 发送 res.code 到后台换取 openId, sessionKey, unionId}})},globalData: {userInfo: null,num:5}
})

1.2  页面生命周期

        对于小程序中的每个页面,都需要在页面对应的 js 文件中进行注册,指定页面的初始数据、生命周期回调、事件处理函数等。页面的生命周期常用api有以下几种。

        onReady 第一次渲染完成;

        onShow页面前台显示;

        onHide页面后台运行;

        onUnload页面页面被卸载;

        固定回调函数有:onPullDownRefresh下拉属性、onReachBottom上拉触底、onShareAppMessage右上角分享、onShareTimeLine 分享到朋友圈、onPageScroll 当页面滚动时、onTabItemTap 页面底部栏被点击等

.js文件

Page({data: {showtop:false},onLoad(options) {console.log("页面生命周期:onLoad加载")},onReady() {console.log("页面生命周期:onReady第一次渲染完成")//1.操作节点(没有window,document.getElsment,document)//创建一个选择器const query=wx.createSelectorQuery();//选中h1节点,获取它的边界query.select(".h1").boundingClientRect();//获取窗口的位置信息query.selectViewport().scrollOffset();//执行命令返回结果query.exec(function(res){//获取元素的边界信息,bottom,top,right,left,height,widthconsole.log(res[0]);//窗口信息,scrollHeight,scrollLeft,scrollWidth,scrollTopconsole.log(res[1]);})},onShow() {console.log("页面生命周期:onShow页面前台显示")},// onShareTimelineonShareTimeline(){},onHide() {console.log("页面生命周期:onHide页面后台运行")},onUnload() {console.log("页面生命周期:onUnload页面页面被卸载")},onPullDownRefresh() {},onReachBottom() {},/*** 用户点击右上角分享*/onShareAppMessage() {//默认以当前页面的截图//实际中可以网络请求一个数组,从数组随机的获取一组参数return {title:"送你50元现金",path:"/pages/yidian/yidian",imageUrl:"图片路径"}},//分享到朋友圈onPageScroll(e){//当页面滚动距离大于100时显示回到顶部if(e.scrollTop>100){this.setData({showtop:true});}else{this.setData({showtop:false});}},goTop(){//页面滚动到0的位置,时间为600毫秒wx.pageScrollTo({duration:600,scrollTop:0,})}
})

.wxml文件

<view class="h1">页面的生命周期
</view>
<navigator url="/pages/home/home">home</navigator>
<view><navigator url="/pages/home/home" open-type="redirect">首页-redirect </navigator>
</view>
<view wx:for="{{100}}" wx:key="index">{{item+1}}
</view>
<view class="showtop" wx:if="{{showtop}}" bindtap="goTop">TOP
</view>

 二、微信内置api

2.1 基础api

        wx.getSystemInfoAsync()同步获取系统信息,一般常用到的系统信息有statusBarHeight状态栏高度、windowWith/Height可用窗口的宽/高、safeArea安全区域、model手机型号、system系统 iOS/Android、batteryLevel电量等。

         路由api,常用到有wx.navigateTo({}) 跳转、wx.redirectTo()重定向、wx.switchTab()切换底部栏、wx.navigateBack()返回等。

2.2 网络请求

        wx.request(),参数及含义:url请求地址、data数据(post)、timeout超时、header请求头 通常添加contentType Authorization token、method方法、success成功的回调函数、fail失败的回调函数、complete 无论成功或失败都会执行(通常会结束加载提示)等。

wx.request({url:url,method:option.method,//请求的方法,默认为getdata:option.data,header,success(res){//请求成功resolve(res.data);},fail(err){//04对错误进行处理wx.showToast({title: '加载失败',icon:"none"})//请求失败rejects(err);},complete(){//关闭加载提示wx.hideToast();}})

2.3  文件下载与上传

        wx.downloadFile() 下载文件;

        wx.upLoadFile() 上传文件(图片)。

.js文件

page({
data: {pic:"https://img1.baidu.com/it/u=3176572196,1731961520&fm=253&fmt=auto&app=138&f=JPEG?w=749&h=500"},
upFile(){var that=this;//选择媒体wx.chooseMedia({count:1,//媒体数量success(res){console.log(res);//获取选择的第0个图片的临时地址var tempFile=res.tempFiles[0].tempFilePath;wx.uploadFile({filePath: tempFile,name: 'file',url: 'http://dida100.com/ajax/file.php',success:res=>{console.log(res);//转换为json对象var data=JSON.parse(res.data);//更新图片信息that.setData({pic:"http://dida100.com"+data.pic})}})}})},downPic(){wx.downloadFile({url: this.data.pic,success(res){console.log(res);wx.saveImageToPhotosAlbum({filePath: res.tempFilePath,success(){//提示保存成功wx.showToast({title: '下载成功',icon:"none"})}})}})
})

 .wxml文件

<view>wx.downloadFile()下载文件
</view>
<image src="{{pic}}" bindtap="downPic" mode="aspectFill"/>
<button type="warn" bindtap="upFile">上传文件</button>

2.4 界面

     wx.showModal 显示模态框;

     wx.showToast 显示提示,icon的类型有success、 fail、 err、 none;

     wx.showLoading显示加载;

     wx.setNavigationBarTitle({})设置页面顶部栏标题。

showTip(){wx.setNavigationBarTitle({title: 'api讲解',})wx.showLoading({title: '加载中',})setTimeout(()=>{wx.hideLoading()},1000)wx.showToast({title: 'hello',icon:"none"})wx.showModal({title:"需要观看广告",content:"每天试用两次"})},

2.5 获取用户信息

        wx.getUserProfile()获取用户信息。

三、button开放能力

        内置组件button有一个open-type属性,值类型为string,常用到的合法值有:share触发用户转发、getPhoneNumber获取用户手机号、getUserInfo获取用户信息、chooseAvatar获取用户头像等。


http://chatgpt.dhexx.cn/article/NlWdr2Ye.shtml

相关文章

微信小程序分享功能异步请求

分享一个助力链接给朋友&#xff0c;但在点击分享按钮后需要向后台请求接口再来判断当前是否可分享&#xff0c;也就是说需要在分享按钮那里做一个异步请求&#xff0c;一开始怎么弄都是只要点击分享按钮就会弹出分享弹框&#xff0c;后面发现可以用Promise()进行截断 <but…

java 实现微信小程序接口

使用weixin-java-miniapp实现微信小程序登录接口&#xff0c;我们使用开源的包 maven 依赖 <dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-miniapp</artifactId><version>3.9.0</version> </d…

微信小程序分享朋友圈API限制问题

在开发微信小程序过程中&#xff0c;需要实现将小程序分享到朋友圈&#xff0c;以扩大宣传范围&#xff0c;吸引流量。 实现也不难&#xff0c;满足【两个条件】即可&#xff1a; 首先&#xff0c;页面需设置允许“发送给朋友”。具体参考 Page.onShareAppMessage 接口文档 满…

微信小程序实现分享海报

实现前的注意事项&#xff1a; 1、使用的是微信小程序官方的canvas组件官方文档地址 2、在canvas中不能绘制网络图片&#xff0c;需要使用wx.getImageInfo({}),文档地址 注意最好在画布绘制之前对图片进行转化&#xff0c;我在绘制画布的过程中转化时获取到的地址一直是空的&am…

uniapp 微信小程序分享功能

微信小程序分享功能、传参、接收参数 1&#xff0c;分享功能 在页面上与methods同级写上onShareAppMessage()函数。 onShareAppMessage() {return{title: "xxx欢迎你",//分享标题path: "/pages/detail/detail",//页面 path &#xff0c;必须是以 / 开头的…

微信小程序商品分享海报

canva实现微信小程序商品分享海报 前言 使用canvas画布实现小程序分享海报功能 一、定义一个生成海报按钮 1.点击按钮生成海报 catchtap:handleShare 使用catch绑定阻止事件冒泡 <view class"poster_window " catchtap"handleShare"><view cl…

小白开发微信小程序18--转发API

1、什么是api 微信小程序API&#xff08;Application Programming Interface&#xff09;&#xff0c;应用程序编程接口&#xff0c;也是程序员口中常说的接口。其实api并不专属于小程序&#xff0c;任何编程语言或程序形态都有相对应的api。而我们今天谈的小程序api&#xff0…

mysql在线增加字段_MySQL在线加字段实现原理

作者&#xff1a;vinchen 腾讯互娱内部维护了一个TMySQL分支&#xff0c;基于官方5.5.24&#xff0c;实现了类似于Oracle 11g的快速加字段功能。该功能通过扩展存储格式来实现&#xff0c;原理类似于Oracle 11g&#xff0c;以下介绍下其实现原理。 1. GCS行格式 需要在innodb中…

mysql新增json_mysql5.7 新增的json字段类型用法实例分析

本文实例讲述了mysql5.7 新增的json字段类型用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 一、我们先创建一个表&#xff0c;准备点数据 CREATE TABLE json_test ( id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT ID, json json DEFAULT NULL COMMENT j…

Mysql新增字段到大数据表导致锁表

昨天晚上7点左右&#xff0c;对一张表进行加字段&#xff0c;大概200多万条记录&#xff0c;字段90多个的大表&#xff0c;结果造成mysql锁表&#xff0c;进而导致服务不可用。执行语句如下&#xff1a; [sql] view plain copy ALTER TABLE sc_stockout_order ADD route_remar…

MySQL 新增字段(alter table add column),报错:Duplicate entry

问题 执行一个增加字段的DDL语句脚本时&#xff0c;报错&#xff0c;错误如下: Error 1062: Duplicate entry c51d3db8-59a5 2022-06-28 17:59:59 for key uniq_material_date重复执行报相同的错误。根据错误提示的条件去数据库中查询却只能查到一条记录&#xff0c;并没有重…

mysql新增、修改表字段

一、新增字段 说明&#xff1a;以下语句关键字COLUMN&#xff0c;都可以省略&#xff0c;“ACT_AAA”是表名 格式 ALTER TABLE 表名 ADD COLUMN 字段名称 字段类型&#xff08;字段长短-选填&#xff09; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL&#xf…

ln命令使用

Linux中ln是一个非常重要的一个命令&#xff0c;主要是将两个文档进行连接&#xff0c;创建一个连接关系 连接档&#xff1a;ln 使用ln可以在两个文件之间建立关联&#xff0c;就类似Windows下的快捷方式&#xff0c;连接有两种方式 Hard Link&#xff08;硬式连接或实际连接…

Linux ln 命令是什么?C/C++代码实现

在Linux中&#xff0c;在命令行上工作时&#xff0c;需要在文件之间创建链接&#xff0c;将文件名与文件数据相关联。这可以使用名为 ln 的专用命令来实现。 什么是链接&#xff1f; 在讨论 ln 命令之前&#xff0c;让我们先讨论一下链接命令&#xff0c;什么是链接&#xff…

Linux命令详解(13)- ln命令

ln是英文“link files”的缩写&#xff0c;命令不算复杂&#xff0c;但是非常重要。 语法&#xff1a; ln option Source file or directory Destination file or directory 这里先讲下两个概念。 1.软连接 软链接类似于windows系统中的快捷方式。创建之后&#xff0c…

linux ln 远程,Linux 软连接 (ln命令)

这是linux中一个非常重要命令。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个…

linux 中的 ln 命令,Linux ln命令操作指南

ln是Linux系统中一个重要的命令&#xff0c;能够为文件建立链接&#xff0c;保持链接文件的同步性&#xff0c;下面小编就给大家介绍下Linux下如何使用ln命令&#xff0c;通过实例来详细了解。 1. 使用ln命令给档案创建symbolic link。 linux系统下的symbolic link类似于window…

Linux ln命令详解

ln命令来自于英文单词link的缩写&#xff0c;中文译为“链接”&#xff0c;其功能是用于为某个文件在另外一个位置建立同步的链接。Linux系统中的链接文件有两种形式&#xff0c;一种是硬链接&#xff08;hard link&#xff09;&#xff0c;另一种是软链接&#xff08;symbolic…

ln命令应用

记录&#xff1a;352 场景&#xff1a;在CentOS 7.9操作系统上&#xff0c;使用ln命令创建软链接(symbolic links)和硬链接(hard links)。解决&#xff1a;Too many levels of symbolic links。 版本&#xff1a; 操作系统&#xff1a;CentOS 7.9 1.命令应用 (1)目录创建软…

linux ln命令

ln 命令的功能是在不同的位置创建一个链接&#xff0c;又分软链接和硬链接&#xff0c;一般软链接使用较多。 硬链接&#xff1a;ln 源文件 链接文件 是在选定的位置生成一个文件的镜像&#xff0c;镜像文件与源文件同样大小 软连接&#xff1a;ln –s 源文件 链接文件 是…