微信小程序常用api使用
小程序提供了一个简单、高效的应用开发框架和丰富的组件及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获取用户头像等。
微信小程序常用api使用相关推荐
- 微信小程序-常用api
文章目录 微信小程序-常用api 路由 wx.switchTab(Object object) wx.navigateTo(Object object) wx.navigateBack(Object ...
- 【小程序开发必备】微信小程序常用API全介绍,附示例代码和使用场景
文章目录 1.网络请求相关API 1.1 wx.request 1.2 wx.uploadFile 1.3 wx.downloadFile 1.4 wx.connectSocket 2.页面跳转相关A ...
- 微信小程序常用api总结
内容待写... ≧◔◡◔≦ 滑到底啦~ // 1.0 小程序接收传递过来的参数onLoad: function (options) {var str= options.str; //接收到的参数 st ...
- 【小程序】微信小程序常用api的使用,附案例(建议收藏)
1- 前言 这是微信小程序常用的几个API,特地总结一下: 学会使用 微信官方文档 · 小程序 2- 界面 2.1 wx.setNavigationBarTitle() 标题栏文本 wx.setNav ...
- 微信小程序-常用API开发技巧学习笔记
常用API开发技巧学习笔记 第一章 认识微信小程序 前后端分离的开发方式 小程序的特点 小程序对开发者的影响 学习小程序需要的基础 第二章 小程序环境搭建与开发工具介绍 小程序开发环境 没有小程序号对 ...
- 微信小程序常用API封装
主要是为了在项目中使用时 不需要每次都通过wx. 获取 使得同样代码冗余 主要是为了在项目中使用时 不需要每次都通过wx. 获取 使得同样代码冗余 主要是为了在项目中使用时 不需要 ...
- 从0到一开发微信小程序(6)—小程序常用API
文章目录 其他相关文章 1.小程序API 1.1.路由 1.1.1.navigateTo(保留当前页面,跳转到应用内的某个页面,可以带参数) 1.1.2.redirectTo(关闭当前页面,跳转到应用 ...
- vc++6.0获取磁盘基本信息_微信小程序——常用功能2:微信小程序用户登录,申请用户授权并获取用户基本信息...
微信小程序--常用功能2:申请用户授权并获取用户基本信息 为了更好的用户体验,很多时候我们想要获取用户的基本信息,从而实现将信息呈现到用户界面.给用户划分地域.给用户分类等功能. 但是要想获取用户信息 ...
- 微信小程序常用视图容器组件
微信小程序常用视图容器组件 1.组件概述 2.常用的试图容器组件 2.1 view 2.1.1 案例 2.2 scroll-view 2.2.1 案例 2.3 swiper 2.3.1 案例 1.组件 ...
最新文章
- 算法笔记-归并算法面试题、逆序数问题
- eomj表情 mysql_mysql存储4字节的表情包数据报异常_Emoji表情包_Incorrect string value: #3...
- Spring Cloud实战小贴士:Zuul处理Cookie和重定向
- java生成二维码打印到浏览器
- python+selenium自动化测试-Windows环境搭建
- comparator比较器用法_电压跟随器的这些点,确定都懂了吗?如果设计成同相端追随反向端会怎样? #运放...
- EasyUI:中datagrid数据表格的删除、编辑、保存、撤销功能实现
- 家政O2O要在寒冬下为用户创造体验春天
- Java网络编程IO模型 --- BIO、NIO、AIO详解
- 韩立刚老师 《计算机网络》视频课程目录
- html页面通过flv.js实现视频监控直播和点播功能。
- Python类中的方法要加self的理由
- Caused by: java.lang.UnsatisfiedLinkError: Library hello-jni not found“问题解决
- 回首2013,一个屌丝码农的感慨
- linux下的shell脚本
- LaTex(PART X)数学公式的6种定义形式
- git commit 遇到 “#modified: xxx/xxx (modified content)”问题的解决
- 解决小新13pro2020连接4k60hz显示器后,出现卡顿,查看刷新率只有30hz的问题
- 应用宝使用绑定iOS下载
- 感知+平台+应用:忽米打造4款工业智能硬件产品
热门文章
- Redis发布订阅模式实现原理
- RabbitMQ教程(四) Java 使用rabbitmq
- C# 读取DXF全套实例 图形输出 控制台输出 dxf全部信息
- c多语言开发,“手把手”教你开发一个多语言翻译chrome插件
- Python发现即将流失的客户
- linux桌面用什么软件打开方式,分享|Linux桌面上的小饼饼,让启动应用分外不同!...
- 孙悟空早已死在取经途中
- Spring学习笔记(一):bean对象的配置Ioc
- String中的split(,)和split(,,-1)的区别
- VUE mixins使用