微信小程序常用api使用

时间:2024-10-04 07:33:09

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

一、生命周期

1.1 小程序的生命周期

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

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

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

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

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

  1. App({
  2. onError(){
  3. console.log("小程序生命周期:onError小程序发送错误")
  4. },
  5. onHide(){
  6. console.log("小程序生命周期:onHide小程序后台运行")
  7. onShow(){
  8. console.log("小程序生命周期:onShow小程序前台展示")
  9. },
  10. onLaunch() {
  11. console.log("小程序生命周期:onLaunch小程序页面启动")
  12. // 展示本地存储能力
  13. const logs = wx.getStorageSync('logs') || []
  14. logs.unshift(Date.now())
  15. wx.setStorageSync('logs', logs)
  16. // 登录
  17. wx.login({
  18. success: res => {
  19. // 发送 到后台换取 openId, sessionKey, unionId
  20. }
  21. })
  22. },
  23. globalData: {
  24. userInfo: null,
  25. num:5
  26. }
  27. })

1.2  页面生命周期

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

        onReady 第一次渲染完成;

        onShow页面前台显示;

        onHide页面后台运行;

        onUnload页面页面被卸载;

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

.js文件

  1. Page({
  2. data: {
  3. showtop:false
  4. },
  5. onLoad(options) {
  6. ("页面生命周期:onLoad加载")
  7. },
  8. onReady() {
  9. ("页面生命周期:onReady第一次渲染完成")
  10. //1.操作节点(没有window,,document)
  11. //创建一个选择器
  12. const query=();
  13. //选中h1节点,获取它的边界
  14. query.select(".h1").boundingClientRect();
  15. //获取窗口的位置信息
  16. ().scrollOffset();
  17. //执行命令返回结果
  18. (function(res){
  19. //获取元素的边界信息,bottom,top,right,left,height,width
  20. (res[0]);
  21. //窗口信息,scrollHeight,scrollLeft,scrollWidth,scrollTop
  22. (res[1]);
  23. })
  24. },
  25. onShow() {
  26. ("页面生命周期:onShow页面前台显示")
  27. },
  28. // onShareTimeline
  29. onShareTimeline(){
  30. },
  31. onHide() {
  32. ("页面生命周期:onHide页面后台运行")
  33. },
  34. onUnload() {
  35. ("页面生命周期:onUnload页面页面被卸载")
  36. },
  37. onPullDownRefresh() {
  38. },
  39. onReachBottom() {
  40. },
  41. /**
  42. * 用户点击右上角分享
  43. */
  44. onShareAppMessage() {
  45. //默认以当前页面的截图
  46. //实际中可以网络请求一个数组,从数组随机的获取一组参数
  47. return {
  48. title:"送你50元现金",
  49. path:"/pages/yidian/yidian",
  50. imageUrl:"图片路径"
  51. }
  52. },
  53. //分享到朋友圈
  54. onPageScroll(e){
  55. //当页面滚动距离大于100时显示回到顶部
  56. if(>100){
  57. ({showtop:true});
  58. }else{
  59. ({showtop:false});
  60. }
  61. },
  62. goTop(){
  63. //页面滚动到0的位置,时间为600毫秒
  64. (
  65. {
  66. duration:600,
  67. scrollTop:0,
  68. })
  69. }
  70. })

.wxml文件

  1. <view class="h1">
  2. 页面的生命周期
  3. </view>
  4. <navigator url="/pages/home/home">home</navigator>
  5. <view>
  6. <navigator url="/pages/home/home" open-type="redirect">首页-redirect </navigator>
  7. </view>
  8. <view wx:for="{{100}}" wx:key="index">
  9. {{item+1}}
  10. </view>
  11. <view class="showtop" wx:if="{{showtop}}" bindtap="goTop">
  12. TOP
  13. </view>

 二、微信内置api

2.1 基础api

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

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

2.2 网络请求

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

  1. ({
  2. url:url,
  3. method:option.method,//请求的方法,默认为get
  4. data:option.data,
  5. header,
  6. success(res){
  7. //请求成功
  8. resolve(res.data);
  9. },
  10. fail(err){
  11. //04对错误进行处理
  12. ({
  13. title: '加载失败',
  14. icon:"none"
  15. })
  16. //请求失败
  17. rejects(err);
  18. },
  19. complete(){
  20. //关闭加载提示
  21. ();
  22. }
  23. })

2.3  文件下载与上传

        () 下载文件;

        () 上传文件(图片)。

.js文件

  1. page({
  2. data: {
  3. pic:"/it/u=3176572196,1731961520&fm=253&fmt=auto&app=138&f=JPEG?w=749&h=500"
  4. },
  5. upFile(){
  6. var that=this;
  7. //选择媒体
  8. ({
  9. count:1,//媒体数量
  10. success(res){
  11. (res);
  12. //获取选择的第0个图片的临时地址
  13. var tempFile=[0].tempFilePath;
  14. ({
  15. filePath: tempFile,
  16. name: 'file',
  17. url: '/ajax/',
  18. success:res=>{
  19. (res);
  20. //转换为json对象
  21. var data=(res.data);
  22. //更新图片信息
  23. ({pic:""+data.pic})
  24. }
  25. })
  26. }
  27. })
  28. },
  29. downPic(){
  30. ({
  31. url: this.data.pic,
  32. success(res){
  33. (res);
  34. ({
  35. filePath: ,
  36. success(){
  37. //提示保存成功
  38. ({
  39. title: '下载成功',
  40. icon:"none"
  41. })
  42. }
  43. })
  44. }
  45. })
  46. })

 .wxml文件

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

2.4 界面

      显示模态框;

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

     显示加载;

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

  1. showTip(){
  2. wx.setNavigationBarTitle({
  3. title: 'api讲解',
  4. })
  5. wx.showLoading({
  6. title: '加载中',
  7. })
  8. setTimeout(()=>{
  9. wx.hideLoading()
  10. },1000)
  11. wx.showToast({
  12. title: 'hello',
  13. icon:"none"
  14. })
  15. wx.showModal({
  16. title:"需要观看广告",
  17. content:"每天试用两次"
  18. })
  19. },

2.5 获取用户信息

        ()获取用户信息。

三、button开放能力

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