你必须知道的50个常用小程序API

128 阅读7分钟

登录、用户信息相关

  1. login--微信登录
wx.login({
    success(res){
        // 登录成功
        wx.request({})
    },
    fail(err){
        // 登录失败
    },
    complete(){
        // 接口状态改变均触发
    }
})
  1. getUserInfo--获取用户信息,默认获取,用户无感知
wx.getUserInfo({
    success(res){
        // 获取成功
        console.log(res.userInfo) // 不包括敏感信息
    },
    fail(err){
        // 获取失败
    },
    complete(){
        // 接口状态改变均触发
    }
})
  1. getUserProfile--获取用户信息,需要弹窗经过用户允许
wx.getUserProfile({
    desc: '', // 声明获取用户信息的用途
    success(res){
        // 获取成功
        console.log(res.userInfo)
    },
    fail(err){
        // 获取失败
    },
    complete(){
        // 接口状态改变均触发
    }
})

授权相关

  1. authorize--弹出用户授权弹窗的。如录音、摄像头、蓝牙等功能
wx.authorize({
    scope: '', // 需要授权的scope
    success(res){
        // 用户授权
    },
    fail(err){},
    complete(){}
})

订阅相关

  1. requestSubscribeMessage--发起订阅功能,拉起订阅弹窗,需要用户允许。需要在微信后台开启,并拿到相应的订阅模板ID
wx.requestSubscribeMessage({
    tmplIds: [], // 模板id
    success(res){},
    fail(err){},
    complete(){}
})

设置相关

  1. openSetting--拉起设置面板,展示用户设置的结果
wx.openSetting({
    withSubscriptions: Boolean, // 是否同时获取用户订阅的状态, 非必填
    success(res){
        console.log(res.authSetting)
    },
    fail(err){},
    complete(){}
})
  1. getSetting--获取用户的当前设置,只返回已经向用户请求过的权限
wx.getSetting({
     withSubscriptions: Boolean, // 是否同时获取用户订阅的状态, 非必填
    success(res){
        console.log(res.authSetting)
    },
    fail(err){},
    complete(){}
})

路由相关,小程序中页面栈最多10层

  1. switchTab--跳转到TabBar页面,并关闭其他所有非tabBar页面
wx.switacTab({
    url: '',
    success(res){},
    fail(err){},
    complete(){}
})
  1. relaunch--关闭所有页面,打开指定页面
wx.relaunch({
    url: '',
    success(res){},
    fail(err){},
    complete(){}
})
  1. redirectTo--关闭当前页面,打开指定页面,但是不允许跳转tabBar页面
wx.redirectTo({
    url: '',
    success(res){},
    fail(err){},
    complete(){}
})
  1. navigateTo--保留当前页面,打开指定页面,但是不允许跳转tabBar页面
wx.navigateTo({
    url: '',
    success(res){},
    fail(err){},
    complete(){}
})
  1. navigateBack--关闭当前页面,返回上一级或多级页面
wx.navigateBack({
    delta: 2, // 返回的页面数。如大于 现有页面数,返回首页
    success(res){},
    fail(err){},
    complete(){}
})

分享相关

  1. hideShareMenu--隐藏当前页面的分享按钮
wx.hideShareMenu({
    menus: [], // 需要隐藏的分享按钮
    success(res){},
    fail(err){},
    complete(){}
})
  1. showShareMenu--显示当前页面的分享按钮
wx.showShareMenu({
    withShareTicket: true, // 是否使用带shareTicket的转发详情
    menus: [], // 需要展示的分享按钮
    success(res){},
    fail(err){},
    complete(){}
})
  1. showShareImageMenu--打开分享图片弹窗,可 转发、收藏或下载
wx.showShareImageMenu({
    path: '', // 要分享的图片地址
    success(res){},
    fail(err){},
    complete(){}
})
  1. getShareInfo--获取转发详细信息
wx.getShareInfo({
    shareTicket: '', // 需要获取的分享所对应的id
    timeout: 5000, 
    success(res){},
    fail(err){},
    complete(){}
})

弹窗提示相关

  1. showToast--显示消息提示框
wx.showToast({
    title: '', // 提示框标题
    icon: 'success\erroe\loading\none', 
    image: '', // 自定义图标,优先级高于icon
    duration: '', // 提示的延迟时间
    mask: '' // 是否显示透明蒙层,防止触摸穿透
    success(res){},
    fail(err){},
    complete(){}
})
  1. hiswToast--隐藏消息提示框
wx.hiswToast({
    success(res){},
    fail(err){},
    complete(){}
})
  1. showModal--显示模态对话框
wx.showModal({
    title: '', // 提示框标题
    content: '', // 实体的内容 
    showCancel: true, // 是否显示取消按钮
    cancelText: '', // 取消按钮的文字,最多4个字符
    cancelColor: '', // 取消按钮文字颜色,必须16进制
    confirmText: '' // 确认按钮文字,最多4个字符
    confirmColor: '' // 确认按钮文字颜色 必须16进制
    edittable: false, // 是否显示输入框
    placeholderText: '' // 是否显示输入框提示文本
    success(res){},
    fail(err){},
    complete(){}
})
  1. hiswModal--隐藏模态对话框
wx.hiswModal({
    success(res){},
    fail(err){},
    complete(){}
})
  1. showLoading--显示loading提示框,需要主动调用 wx.hideLoading 才可关闭
wx.showLoading({
    title: '', // 提示框标题
    mask: '' // 是否显示透明蒙层,防止触摸穿透
    success(res){},
    fail(err){},
    complete(){}
})
  1. hideLoading--关闭loading提示框
wx.hideLoading({
    success(res){},
    fail(err){},
    complete(){}
})

tabBar相关

  1. showTabBar--显示tabBar
wx.showTabBar({
    animation: false, // 是否需要动画
    success(res){},
    fail(err){},
    complete(){}
})
  1. hideTabBar--隐藏tabBar
wx.hideTabBar({
    animation: false, // 是否需要动画
    success(res){},
    fail(err){},
    complete(){}
})
  1. setTabBarStyle--动态设置tabBar的整体样式
wx.setTabBarStyle({
    color: '', // tab文字默认颜色,HexColor
    selectColor: '' // 选中时的颜色,HexColor
    backgroundColor: '' // tab背景颜色,HexColor
    borderStyle: '' // tabBar上边框的颜色,仅支持black/white
    success(res){},
    fail(err){},
    complete(){}
})
  1. setTabBarBadge--为tabBar某一项右上角添加文本
wx.setTabBarBadge({
    index: 1, // 从左边算起
    text: '' // 显示的文本,超4个显示···
    success(res){},
    fail(err){},
    complete(){}
})
  1. removeTabBarBadge--移除tabBar某一项右上角的文本
wx.removeTabBarBadge({
    index: 1, // 从左边算起
    success(res){},
    fail(err){},
    complete(){}
})
  1. showTabBarRedDot--显示tabBar某一项右上角的红点
wx.showTabBarRedDot({
    index: 1, // 从左边算起
    success(res){},
    fail(err){},
    complete(){}
})
  1. removeTabBarRedDot--移除tabBar某一项右上角的红点
wx.removeTabBarRedDot({
    index: 1, // 从左边算起
    success(res){},
    fail(err){},
    complete(){}
})

下拉操作相关

  1. stopPullDownRefresh--停止当前下拉刷新
wx.stopPullDownRefresh({
    success(res){},
    fail(err){},
    complete(){}
})
  1. startPullDownRefresh--开始下拉刷新,调用触发下拉刷新动画,效果与手动一致
wx.startPullDownRefresh({
    success(res){},
    fail(err){},
    complete(){}
})

页面滚动锚点相关

  1. pageScrollTo--将页面滚动到目标位置
wx.pageScrollTo({
    scrollTop: 200, // 单位px
    duration: 300, // 滚动动画时长,单位ms
    selector: '', // 选择器,类似css选择器(仅支持:id、class、>、后代选择器'.'、多选择器',')
    offsetTop: '', // 偏移距离,需要和selector参数搭配使用,单位px
    success(res){},
    fail(err){},
    complete(){}
})

网络请求相关

  1. request--发起HTTPS网络请求
wx.request({
    url: '', // 服务器接口地址
    data: {}, // 请求参数
    header: {}, // 请求头
    timeout: 5000, // 超时时间,单位ms
    method: 'post', // 请求方式, post/get/put/delete/...
    success(res){
        // 服务器返回数据
    },
    fail(err){},
    complete(){}
})
  1. downLoadFile--下载文件资源到本地
wx.downLoadFile({
    url: '', // 下载资源的url
    header: {}, // 请求头
    timeout: 5000, // 超时时间,单位ms
    filePath: '', // 指定文件下载后储存的路径(本地路径)
    success(res){
        // 服务器返回数据
    },
    fail(err){},
    complete(){}
})
  1. upLoadFile--将本地资源上传到服务器
wx.upLoadFile({
    url: '', // 开发者服务器地址
    filePath: '', // 要上传的文件资源的路径(本地路径)
    name: '', // 文件对应的key,服务端通过该key获取文件二进制内容
    header: {}, // 请求头
    formData: {}, // http请求中额外的form data参数
    timeout: 5000, // 超时时间,单位ms
    success(res){
        // 服务器返回数据
    },
    fail(err){},
    complete(){}
})

支付相关

  1. requestPayment--发起微信支付。timeStamp、nonceStr、package、signType、paySign等字段均是服务端返回
wx.requestPayment({
    timeStamp: '', // 时间戳
    nonceStr: '', // 随机字符串
    package: '', // 同意下单接口返回的prepay_id参数,提交格式【prepay_id=**】
    signType: '', // 算法签名,与后台下单时的值一致
    paySign: '', // 签名
    success(res){
        // 服务器返回数据
    },
    fail(err){},
    complete(){}
})
  1. requestPluginPayment--插件中拉起支付 [插件 / 插件功能页 / 支付功能页 (qq.com)]
wx.requestPluginPayment({
    version: '' // develop-开发板,trial-体验版,release-正式版
    free: 66, // 需要显示在页面中的金额,单位为分
    paymentArgs: {}, // 任意数据,传递给功能也中的响应函数
    currencyType: '', // 显示在页面中的货币符号的代码
    success(res){
        // 服务器返回数据
    },
    fail(err){},
    complete(){}
})
  1. setStorage/setStorageSync--将数据储存在本地指定的key中。
wx.setStorageSync('key', value) // 同步

wx.setStorage({ 
    // 异步
    key: 'key', // 储存的key
    data: 'value', // 储存key对应的值
    success(res){
        // 返回数据
    },
    fail(err){},
    complete(){}
})
  1. getStorageInfo/getStorageInfoSync--获取当前storage的相关信息。
wx.getStorageInfoSync() // 同步

wx.getStorageInfo({ 
    // 异步
    success(res){
        // 返回数据
    },
    fail(err){},
    complete(){}
})
  1. 关于设置/获取/移除/清除本地数据的方法: [set/get/remove/clear]Storage[Sync]
set: 设置,如果原本有值,就将之覆盖
get: 获取
remove:移除
clear:storage空间全部清除
Sync: 有[Sync]时,是同步方法,无[Sync]时,是异步方法

小程序版本相关

  1. 获取全局唯一的版本更新管理器,判断是否是最新版本,且是否更新,并返回更新结果
const updateManager = wx.getUpdateManager()
/**
 * updateManager 中有四个方法
 * onCheckForUpdate -- 监听 向微信后台请求检查更新结果 事件,每次启动时自动检查,无需主动触发
 * onUpdateReady -- 监听小程序有版本更新事件
 * onUpdateFailed -- 监听小程序更新失败事件
 * applyUpdate -- 强制小程序重启 并使用新版本
*/

updateManager.onCheckForUpdate(function(res){
    // 请求玩新版本信息的回调
    console.log(res.hasUpdate)
})

updateManager.onUpdateReady(function(){
    wx.showModal({
        title: '更新提示',
        content:'新版本已准备好,是否重启应用?'
        success:  function(res){
            if(res.confirm){
                // 新版本已下载好,调用 applyUpdate 应用新版本并重启
                updateManager.applyUpdate()
            }
        }
    })
})

updateManager.onUpdateFailed(function(){
    // 新版本下载失败
})

如有错误、遗漏,敬请指出!!!