微信小程序API接口加强版
weapp-extra
该模块已经停止维护,请使用最新版的需求
因小程序迭代太快了,很多接口都要兼容处理,还有一些接口如果用户第一时间没有同意授权会无法正常使用,该库就是为了处理这些情况而生。
依赖
Promise
( 开发者工具默认开启 ES6 -> ES5 就包含的了 )
示例脚手架
请先安装构建工具 - zls-cli
npm install -g zls-cli
zls new weapp-template ProjectFolder
cd ProjectFolder
npm run dev
执行API接口
extra.api(wxapi, options, ...params)
参说明数
wxapi: 接口名称(如'getLocation','getUserInfo')
options: 微信接口OBJECT参数
...params: 微信接口其参数
返回值
Promis对象
执行权限API接口
extra.authApi (wxapi, scope = null, must = 1, tip = {}, errorText = {}, options, ...params)
参说明数
wxapi: 接口名称(如'getLocation','getUserInfo')
scope: scope(包含scope.,如'scope.userLocation')/false(不验证scope权限执行)
must: 执行方式 -1:必须开启权限执行(必须设置scope)/0:静默执行没有权限不提示/1:没权限下提示一次
tip: 没有权限时候的提示弹窗/false不显示弹窗
errorText: 开启权限失败的提示弹窗/false不显示弹窗
...params: 微信接口其参数
返回值
Promis对象
用户授权接口
extra.login(check = true, must = 1, tip = {}, errorText = null)
参说明数
check: 是否会话过期的情况才去发起授权,如果在有效期只会返回 resolve(true)
must: 执行方式 -1:必须开启权限执行/0:静默执行没有权限不提示/1:没权限下提示一次
tip: 没有权限时候的提示弹窗/false不显示弹窗
errorText: 开启权限失败的提示弹窗/false不显示弹窗
返回值
Promis对象
成功:
-
check 为
true
并且在会话有效期只会返回true
-
check 为
false
返回wx.getUserInfo
的值,并且包含一个 code 字段,值:login的code
失败:
-
有 code 字段
-
无 code 字段
具体参考 errMsg 字段
示例
获地理位置
//index.js
const app = getApp()
const extra = require("../../utils/extra")
Page({
data: {
location: false
},
onLoad() {
extra
.authApi("getLocation", "scope.userLocation", 1, "请开启地理位置功能")
.then(e => {
console.log("获取成功", e)
this.setData({
location: e
})
})
.catch(err => {
console.warn("获取失败", err)
})
}
})
获取用户信息
//index.js
const app = getApp()
const extra = require("../../utils/extra")
Page({
data: {
},
//事件处理函数
bindViewTap() {
wx.navigateTo({
url: "../logs/logs"
})
},
onLoad() {
extra
.login(
false,
1,
"请开启用户信息功能",
"没有开启用户信息功能\n程序部分功能受限"
)
.then(e => {
//可以把e.code提交到服务器获openid等信息
console.log("获取成功", e)
})
.catch(err => {
//可以把err.code提交到服务器获openid等信息
console.warn("获取失败", err)
})
}
})