@weiyurun
2023-05-17T12:32:51.000000Z
字数 1545
阅读 80
微信小程序插件使用文档: 官方文档
小程序管理后台的“设置-第三方服务-插件管理”中添加插件,通过 appid 查找插件并添加
app.json:
"plugins": {
"agreementSDK": {
"version": "1.0.0",
"provider": "wx57e59c31c50d5c15"
}
}
app.js文件:
/* 引入 */
const Ag = requirePlugin('agreementSDK')
App({
onLaunch() {
Ag.init()
}
})
默认使用时,插件自动获取/更新协议并提示,点击 不同意
时退出小程序
/* 引入 */
const Ag = requirePlugin('agreementSDK')
App({
onLaunch() {
//配置文件
const config = {
useDialog: true, //是否使用插件自带弹窗样式展示,默认true。如果设置为false,需要自行监听success,获取数据后展示,并在点击 “同意” 时,触发agree()方法
success: this.onSuccess, //首次获取数据成功回调
update: this.onUpdate, //有更新时回调
complete: this.onComplete, //完成回调
fail: this.onFail, //异常回调
AuthListener: this.AuthListener, //用户点击同意/不同意回调
}
Ag.init(config)
}
/* 成功 */
onSuccess(data) {
console.log('返回数据:', data);
},
/* 有更新 */
onUpdate(data) {
console.log('更新结果:', data);
},
/* 完成 */
onComplete() {
console.log('这里可以关闭loading');
},
/* 失败 */
onFail(err) {
console.log('异常:', err);
},
/* 同意/不同意回调 */
AuthListener(res) {
console.log("点击了:", res)
}
})
success、update回调:
{
version: '1.0.0',
remark:'协议(更新)内容描述,富文本格式,需要解析',
list: [
{
did: 'did',
name: '协议名',
version: '协议版本号',
url: '协议地址'
}
]
}
fail回调:
{code:1001, message:'错误信息'}
code说明:
1001:缺少必填字段
1002:监听回调类型不是Function
2001:接口业务异常
2002:接口服务器异常
3001:获取本地存储的协议数据异常
3002:保存协议数据到本地异常
AuthListener回调:
true/false:同意/不同意
init() // 初始化。无返回值 (必须调用)
getLastVersions() // 手动获取最新协议数据,返回Promise。该方法不触发配置项中回调函数
upDate() // 手动触发更新,返回Promise。该方法不触发配置项中回调函数
getLocalData() // 获取本地存储的协议数据,返回Object或null
setLocalData() // 手动设置本地存储的协议数据。无返回值
authorize() // 登录页面用户勾选同意协议时,需要触发该方法。无返回值
revoke() // 登录页面用户取消勾选同意协议时,需要触发该方法。无返回值
agree() // 配置项useDialog为false,自行提示协议内容时,用户点击“同意”,必须触发该方法,否则会认为用户未同意,下次进入小程序仍会触发回调方法