<button id="agree-btn" open-type="agreePrivacyAuthorization" @bindagreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button>
- 发布:2023-08-16 10:41
- 更新:2023-09-06 19:02
- 阅读:2692
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 11
HBuilderX类型: 正式
HBuilderX版本号: 3.8.12
第三方开发者工具版本号: 1.06
基础库版本号: 3.0.0
项目创建方式: HBuilderX
示例代码:
操作步骤:
<button id="agree-btn" open-type="agreePrivacyAuthorization" @bindagreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button>
handleAgreePrivacyAuthorization() {
}
<button id="agree-btn" open-type="agreePrivacyAuthorization" @bindagreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button>
handleAgreePrivacyAuthorization() {
}
预期结果:
有回调
有回调
实际结果:
目前木有回调
目前木有回调
bug描述:
微信授权方案为button新增bindagreeprivacyauthorization回调事件
暂时解决方案
app.vue
globalData: {
showPrivacy: false
},
onLaunch() {
wx.onNeedPrivacyAuthorization(resolve => {
getApp().globalData.showPrivacy = true
})
}
使用页面
<auth-dia ref="auth" />
import authDia from '@/components/authDia.vue'
methods: {
handChooseImg() {
if (getApp().globalData.showPrivacy) {
this.$refs.auth.showEdit()
return
}
uni.chooseMedia({
count: 1,
mediaType: ['image'],
sourceType: ['album', 'camera'],
success: (res) => {
console.log(res)
},
fail: (err) => {
console.log(err)
}
})
}
}
授权弹框authDia.vue
<template>
<u-popup v-model="show" mode="center" border-radius="48" @close="handClose">
<view class="auth-dia">
<view class="name" @click="handGo">
{{ name }}
</view>
<button id="agree-btn" open-type="agreePrivacyAuthorization" @click="handOk">同意</button>
</view>
</u-popup>
</template>
export default {
data() {
return {
show: false,
name: ''
}
},
methods: {
handGo() {
wx.openPrivacyContract({})
},
handOk() {
getApp().globalData.showPrivacy = false
this.$emit('confirm')
this.handClose()
},
handClose() {
this.show = false
},
showEdit() {
wx.getPrivacySetting({
success: (res) => {
this.name = res.privacyContractName
},
})
this.show = true
}
}
}
2***@qq.com (作者)
前置步骤: 需要前往微信公总平台更新隐私政策, 添加 用户上传避震器图片和凭证图片, 上传头像 权限
目前需要手写弹框, 等待uni官网支持回调事件后,可以自动拉起弹框
写的很好,有个问题,如果全局弹窗提示啊,这样入侵到业务里太多地方要改了
-
2***@qq.com (作者)
main.js 注册注册, 要不就是在自己封装一个全局得选择图片方法,等待官方支持这个回调后就方便多了
import authDia from "@/components/authDia.vue";
Vue.component("auth-dia", authDia);2023-08-16 11:03
我是纯小白,不会写呀,好烦呀
代码没贴完吧?
点击同意后还要执行resolvePrivacyAuthorization({ buttonId: 'agree-btn', event: 'agree' }).
然而不知道是不是@bindagreeprivacyauthorization改@click存在问题,resolvePrivacyAuthorization的回调走到fail了.
下次使用chooseImage依然会报错.
-
2***@qq.com (作者)
chooseImage不要使用了, 使用chooseMedia函数, 你的这段代码是拉起微信提供的弹框, 需要在@bindagreeprivacyauthorization事件中调用,目前uni不支持, 所以需要自己写个弹框,用@click暂时过渡
2023-08-16 11:12
-
回复 2***@qq.com: 如果resolvePrivacyAuthorization不调用了的话,那现在onNeedPrivacyAuthorization里面就是单纯的把弹框隐藏掉,好像没啥意义了.
为什么后续就可以调用chooseMedia了?2023-08-16 11:24
-
2***@qq.com (作者)
回复 i***@163.com: 按钮上有扩展事件open-type="agreePrivacyAuthorization" 点击后, 微信那边会有记录
2023-08-16 11:41
最新消息...
似乎刚刚微信又把权限放开了...可能投诉的人太多吧...
Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序
没有同意弄一个假的按钮,同意后在显示实际业务按钮
大佬大佬
wx.onNeedPrivacyAuthorization
这个api一直不触发 是怎么回事
我获取手机号 根本进不到这个方法里
大佬大佬
wx.onNeedPrivacyAuthorization(resolve => {
getApp().globalData.showPrivacy = true;
});
这段代码好像没有生效,在其它的地方使用getApp().globalData.showPrivacy是false,请问是什么原因导致的呢
-
https://developers.weixin.qq.com/community/develop/doc/0002c40c4d401082a230d3fb161000 你去看看这个问题下的回答,看对你有没有帮助
2023-08-24 14:38
-
回复 1***@163.com: 清除授权并改为uni.onNeedPrivacyAuthorization(resolve => {
getApp().globalData.showPrivacy = true;
}),还是不行,一直是false,我实在获取手机号使用<button class="wx box" open-type="getPhoneNumber" @getphonenumber="onGetPhoneNumber">手机号快捷登录</button>
2023-08-24 14:43
-
回复 1***@163.com: 好像是可以了,同意之后没有用到this.resolvePrivacyAuthorization({ buttonId: 'agree-btn', event: 'agree' }),就直接关闭了弹窗
2023-08-24 17:46
XandL
这个答案是对的,@后不需要bind, 还有id="xxx"是一定要写的,不然会出现无法回调但是实际上已经同意的情况。控制台会报警告找不到事件。 <button id="agree-btn" class="btn primary" open-type="agreePrivacyAuthorization" @agreeprivacyauthorization="handleAgree">同意并继续</button>
2023-08-31 10:49
4***@qq.com
没加bind也不触发。onNeedPrivacyAuthorization都是正常。就是点同意不触发@agreeprivacyauthorization回调
2023-09-08 10:31
5***@qq.com
回复 XandL:为什么@agreeprivacyauthorization在有些手机上还是没有回调,
2023-09-08 13:39
5***@qq.com
回复 4***@qq.com: 你可以能需要升级一下库3.0.1
2023-09-08 13:40