@weiyurun
2023-05-17T12:32:51.000000Z
字数 1545
阅读 262
微信小程序插件使用文档: 官方文档
小程序管理后台的“设置-第三方服务-插件管理”中添加插件,通过 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,自行提示协议内容时,用户点击“同意”,必须触发该方法,否则会认为用户未同意,下次进入小程序仍会触发回调方法