发布微信小程序获取收集用户信息权限

news2024/11/17 4:23:54

前言

在发布微信小程序的时候我们经常会遇到审核不通过的情况,其中一种特别让我头疼就是说小程序收集、使用和储存用户信息。不给予通过。

但是他们的接口又不能提供这个功能,并且老是改动,真的特别的麻烦加无语。有时候审核偷一下懒,我就有机会发布成功。为了小程序能顺利的发布而不是碰运气的发布成功,我打算自己做一个类似的功能


效果图

当需要收集用户的信息的时候,需要用户自己选择是否同意收集他们的信息。如果他们不同意,则返回给他们一个空白页并给予提示,如果他们同意就可以正常的填写相关信息。

图注:一进入该页面就会自动弹出一个窗口说明该页面会收集用户信息,请求用户许可。

图注:如果用户点击了取消,则会显示上图样式,并且提供一个按钮给用户来重新申请。

图注:如果用户点击了“确定”则默认为收集用户信息的行为被运行,则返回上图页面,不提供重新申请的方法,只能重置小程序。


实现步骤

1.将wxml分为两块,运用条件渲染的相关知识来有选择的展示给用户。

图注:该页面代码分为两块(两个block),当js文件中canIUseGetUserProfile为true时显示第一个block里面的内容,为false时显示第二个block里面的内容

2. 在js文件中创建相关变量和函数

图注:在js文件中创建一个canIUseGetUserProfile的变量,初始值为false。意思也就是默认情况下,收集用户信息是不被允许的。

图注:上图为一进入页面运行的代码。功能是跳出一个弹窗申请权限,如果用户点击了“确认”则将canIUseGetUserProfile的值变为true,也就是收集用户信息被允许。

图注:该代码对应的是“重新申请”按钮所要执行的函数。


我把代码页放在下面了,需要自取~

//获得用户同意后展示的内容
<blockwx:if="{{canIUseGetUserProfile}}"></block>
//没获得同意后展示的内容
<blockwx:if="{{!canIUseGetUserProfile}}"><view>获取用户请求失败,请重新申请</view><buttonstyle="position: absolute; bottom: 300px; left: 110px;"bindtap="canIUseGetUserProfile">重新申请</button></block>

Page({
    //一开始运行的函数
    onLoad(){
       let that = this
       wx.showModal({
              title: '温馨提示',
              content: '为了确保活动能顺利进行,该页面将获取您相关的个人信息,点击确认同意方可        
               填写相关信息',
              success (res) {
                if (res.confirm) {
                  that.setData({
                     canIUseGetUserProfile: true
                  })
                } else if (res.cancel) {
                  console.log('用户点击取消')
                }
              }
       })
    
    data:{
        //默认是不可获取用户信息的
        canIUseGetUserProfile: false,
    },
    
         //获取用户同意的函数
       canIUseGetUserProfile(){
              let that = this
              wx.showModal({
                     title: '温馨提示',
                     content: '为了确保活动能顺利进行,该页面将获取您相关的个人信息,点击确认        
                     同意方可填写相关信息',
                     success (res) {
                       if (res.confirm) {
                         that.setData({
                            canIUseGetUserProfile: true
                         })
                       } else if (res.cancel) {
                         console.log('用户点击取消')
                       }
                     }
              })
       },



})

2023.2月更新

在上一个版本上优化了相关的UI界面,使得页面更加美观好看,废话不多说,上效果图。

注:图片是在阿里巴巴矢量图标库中找的,你直接在阿里巴巴矢量图标库中搜索404即可。

修改后的代码我也放在下面了,需要的自取~

<blockwx:if="{{!canIUseGetUserProfile}}"><view><imagesrc="/icon/404.png"class="i404"></image><viewclass="tip">获取用户请求失败,请重新申请</view></view><buttonstyle="position: absolute; bottom: 5px; left: 20px; right: 20px; width: 60%;"bindtap="canIUseGetUserProfile">重新申请</button></block>


题外话

如果你有什么更好的想法和方法可以在底下留言~如果你觉得对你有帮助的话可以不要吝啬你的赞和收藏吗~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法刷题-回文数、找出小于平均值的数、旋转图像(C_C++)

文章目录回文数找出小于平均值的数旋转图像回文数 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的…

光电耦合器和MOSFET之间的差异

光电耦合器和MOSFET之间的差异 介绍 光电耦合器/光耦合器和固态继电器&#xff08;光电MOSFET或光耦MOSFET&#xff08;OCMOS FET&#xff09;&#xff09;在保持电隔离的同时传输信号&#xff0c;但存在一些重要差异。 结构差异 下图显示了光电耦合器和OCMOS FET的主要内部…

Vue实战第2章:简单的分配页面布局

缓冲 前言 本篇在讲什么 本篇作为Vue实战的第二章&#xff0c;跟代码逻辑无关&#xff0c;主要是简单的先设计一下个人网站的各个模块内容&#xff0c;明确一下我们想要将网站做出什么样子 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上…

趣味三角——第6章——两个几何定理

第6章 两个几何定理 It is the glory of geometry that from so few principles, fetched from without, it is able to accomplish so much. (几何学的荣耀在于&#xff0c;仅从几个原理出发&#xff0c;外求于无物&#xff0c;但却能够完成如此非凡的壮举。) ——Isaac N…

linux基本功系列-top命令实战

文章目录一. top命令介绍二. 语法格式及常用选项三. 参考案例3.1 显示进程信息3.2 显示完整的进程命令3.3 以批处理的形式展示3.4 设置信息更新频次3.5 显示指定进程号的信息3.6 top面板中常用参数3.7 其他用法四. top的相关说明4.1 交互命令介绍4.2 top面板每行信息的含义4.2.…

MySQL(八):事务的隔离级别、MVCC的原理

目录一、事务的隔离级别1.1 事务的隔离性1.2 事务并发执行引发的一致性问题1.2.1 脏写1.2.2 脏读1.2.3 不可重复读1.2.4 幻读1.3 SQL标准中的四种隔离级别1.4 MySQL中支持的4中隔离级别二、MVCC原理2.1 版本链2.2 ReadView2.3 READ COMMITED 每次读取数据前都生成一个ReadView2…

使用独立显卡安装黑苹果,但无法扩展显示器的解决方案

使用独立显卡安装黑苹果&#xff0c;但无法扩展显示器的解决方案 网上的教程 本文的外部链接&#x1f517; 引用文中的一句话&#xff1a;“这也许是无法驱动独显的黑苹果笔记本想要外接显示器的唯一方案。” ---- 购买拥有displaylink的外置显卡的usb转接器 文章作者给我了…

word@菜单自定义和公式输入

菜单栏快捷键设置 word 设置(选项) Word options (General) - Microsoft Support 点击文件->选项 自定义word菜单 自定义功能区 Customize the ribbon in Word - Microsoft Support Customizing the source list of commandsThe ribbon listAdd or remove commandsReor…

[golang Web开发] 2.golang web开发:操作数据库,增删改查,单元测试

简介 Go 语言中的 database/sql包定义了对数据库的一系列操作,database/sql/driver包定义了应被数据库驱动实现的接口&#xff0c;这些接口会被sql包使用.但是 Go语言没有提供任何官方的数据库驱动&#xff0c;所以需要导入第三方的数据库驱动,不过连接数据库之后对数据库操作的…

超经典JavaIDEA 10个插件 Java开发工程师

工欲善其事&#xff0c;必先利其器。 作为一名合格的程序员&#xff0c;合理配置我们所用的IDEA&#xff0c;是高效开发的必修课。而如今的插件工具也越来越好用&#xff0c;不仅基本具备了智能提示&#xff0c;还可以自动补全代码&#xff0c;甚至能够在查出bug的同时提供修改…

如何彻底删除硬盘数据?电脑高手也恢复不了

实用的小命令,就是彻底删除硬盘上的数据,硬盘恢复软件也恢复不了! 1.以管理员身份运行cmd窗口,打开cmd,如下图所示: 2.在命令提示窗口中,直接输入cipher /w:路径,输入这个命令加上路径即可将文件彻底删除! 可以从整个命令说明上看到是从整个卷上可用的未使用磁盘空间…

Git (2) :Git练习--分支的新建与合并

一.首先有个问题 &#xff1f; 在进行git练习前&#xff0c;有个问题需要提下。。。。 csdn无法登录了。 查了一下资料&#xff0c;是因为CSDN服务器的各地相应速度不一样&#xff0c;辽宁的响应是超时的&#xff0c;所以通过在hosts文件中指定域名http://csdnimg.cn的服务器…

机器学习之卷积操作

很多好主意一旦踏上语义鸿沟&#xff0c;就再也听不到。 卷积&#xff0c;在图像、视觉领域乃老生常谈的内容&#xff0c;但是对于具体工作细节仍然值得我去学习。 卷积原理 卷积&#xff0c;就是利用一个小的矩阵(或者更高维向量)作用于图像矩阵(或者特征矩阵)&#xff0c;然…

Web测试、APP测试常用技巧(错过你一定会后悔)

目录 1. web元素定位七种方式 2. app元素定位3种方式 3. adb常用命令 4. 键盘操作常用函数 5. 鼠标操作常用函数 6. apppium&#xff1a; 7. fixture 1. web元素定位七种方式 优先使用的6种 find_element_by_id (返回一个元素)find_element(s)_by_class_name (根据类名…

2023-02-01 pthread线程局部数据-记录

摘要: pthread线程局部数据-记录 参考: https://www.akkadia.org/drepper/tls.pdf https://en.wikipedia.org/wiki/Thread-local_storage https://download.csdn.net/download/adofsauron/87408865 测试代码: 示例一: #include<stdio.h> #include<stdlib.h> #…

pip install timeout错误解决方案

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结…

java spring Bean生命周期

首先 要搞清楚大概念 什么是生命周期&#xff1f; 学过vue和react的前端会有概念 简单说 就是一个对象从创建到销毁的整个过程 那么 bean的生命周期 我们先文字描述 然后再看效果 第一 阶段 通过构造器创建bean实例 就是找到bean对象配置的 类中的无惨构造 创建对象 第二阶段…

React学习笔记-(Bilibili李立超)

写法的变更 之前 const divNode <div>你好,React</div> ReactDOM.render(divNode,document.getElementById(root))会警告 现在 <script type"text/babel">const divNode <div>你好,React</div>const root ReactDOM.createRoot(…

【PHP 随记】—— laravel 项目环境搭建

&#x1f449;总目录&#x1f448;\large\colorbox{skyblue}{&#x1f449;总目录&#x1f448;}&#x1f449;总目录&#x1f448;​ 文章目录1、安装 laravel 以及 phpstorm 开发插件2、配置虚拟主机与绑定 hosts 文件① 配置虚拟主机② hosts 绑定③ 验证3、配置数据库① 配…

【MyBatis持久层框架】使用Java注解完成CRUD详细解读

文章目录1. 前言2. 实战案例2.1 准备工作2.2 编写接口方法2.3 映射SQL语句2.4 编写测试方法3. SQL语句构建器4. 总结1. 前言 之前我们通过 XML 配置文件的方式映射 sql 语句&#xff0c;将 sql 语句与 Java 代码分离&#xff0c;大大的提高了开发的效率并且解决了 JDBC 原生方…