uniapp APP权限弹框

效果图

在这里插入图片描述

第一步 新建一个页面,设置透明

{"path": "pages/permissionDisc/permissionDisc","style": {"navigationBarTitleText": "","navigationStyle": "custom","app-plus": {"animationType": "fade-in", // 设置fade-in淡入动画,为最合理的动画类型"background": "transparent", // 背景透明"backgroundColor": "transparent", // 背景透明"webviewBGTransparent": true,"mask": "none","popGesture": "none", // 关闭IOS屏幕左边滑动关闭当前页面的功能"bounce": "none" // 将回弹属性关掉}}
}

第二步 APP.vue内监听权限调用

需要使用uview的API监听,跳转到新建的页面

uview地址:https://uviewui.com/js/fastUse.html

// #ifdef APP-PLUS
// 监听系统权限申请
if (uni.$u.sys().osName == 'android') {console.log('权限监听');this.permissionListener = uni.createRequestPermissionListener();this.permissionListener.onConfirm((e) => {console.log('弹出系统权限授权框', e);uni.navigateTo({url: '/pages/permissionDisc/permissionDisc'+'?type=' + JSON.stringify(e),complete(e) {console.log(e);}});});this.permissionListener.onComplete((e) => {console.log('权限申请完成', e, uni.$u.page());// 拒绝时也会走需要处理一下,提示拒绝手动开启if (uni.$u.page() == '/pages/permissionDisc/permissionDisc') {uni.navigateBack();}});
}
// #endif

第三步 页面内写弹框内容

<template><view><view class="mask" :style="{ width: windowWidth + 'px', height: windowHeight + 'px' }" style="padding-top: 60rpx;"><view class="block" v-for="(item, index) in showList" :key="index" :style="{ width: windowWidth * 0.8 + 'px' }"><view class="title"><text class="title" style="margin-bottom: 0">{{ item.name }}</text></view><view class="content"><text class="content">{{ item.content }}</text></view></view></view></view>
</template><script>
export default {name: 'permission',data() {return {show: false,flag: true,title: '',content: '',osName: '',isIos: false,pIndex: 0,permissionList: {'android.permission.ACCESS_COARSE_LOCATION':{name: '访问粗略地理位置',content: '用于将服务根据距离排序,并显示与您的距离,不授权该权限会影响app的正常使用'},'android.permission.ACCESS_FINE_LOCATION': {name: '访问精确地理位置',content: '用于将服务根据距离排序,并显示与您的距离,不授权该权限会影响app的正常使用'},'android.permission.CAMERA': {name: '使用摄像头权限',content: '用于更换、上传您的头像、图片功能,不授权该权限会影响app的正常使用'},'android.permission.READ_EXTERNAL_STORAGE': {name: '读照片及文件权限',content: '用于更换、上传您的头像、图片功能,不授权该权限会影响app的正常使用'},'android.permission.WRITE_EXTERNAL_STORAGE': {name: '写照片及文件权限',content: '用于更换、上传您的头像、图片功能,不授权该权限会影响app的正常使用'},'android.permission.READ_MEDIA_IMAGES': {name: '读媒体图片权限',content: '用于更换、上传您的头像、图片功能,不授权该权限会影响app的正常使用'},'android.permission.READ_MEDIA_VIDEO': {name: '读媒体视频权限',content: '用于更换、上传您的头像、图片功能,不授权该权限会影响app的正常使用'},'android.permission.CALL_PHONE': {name: '使用拨打电话权限',content: '用于直接拨打您点击的电话号码,不授权该权限将无法拨打'},'android.permission.RECORD_AUDIO': {name: '使用麦克风权限',content: '用于录制声音,发送语音消息,语音通话,不授权该权限会影响app的正常使用'}},windowWidth: 0,windowHeight: 0,showList: []};},computed: {},onLoad(e) {try {let list = e.type ? JSON.parse(e.type) : [];list.forEach((item) => {this.showList.push(this.permissionList[item]);});} catch (e) {//TODO handle the exceptionconsole.log(e);}// #ifdef APPthis.osName = plus.os.name;// #endif// this.osName = 'Android'this.isIos = this.osName == 'iOS';if (this.isIos == true) this.show = false;let windowinfo = uni.getWindowInfo();this.windowWidth = windowinfo.windowWidth;this.windowHeight = windowinfo.windowHeight;},methods: {}
};
</script><style>
page {width: 100%;height: 100%;background: rgba(0, 0, 0, 0.4);
}
.mask {width: 100vw;height: 100vh;background-color: rgba(0, 0, 0, 0);position: fixed;top: 0;left: 0;z-index: 99999;/* display: flex;justify-content: flex-start;align-items: center; */
}.block {width: 80%;background-color: #fff;padding: 15rpx;margin-top: 30rpx;margin-left: 60rpx;border-radius: 15rpx;
}.title {font-size: 32rpx;font-weight: bold;margin-bottom: 5rpx;
}.content {font-size: 24rpx;
}
</style>

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

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

相关文章

网络安全证书培训机构有哪些

一、前言少叙 记得刚入行的时候&#xff0c;想考一个证书来装装门面&#xff0c;结果发现费用太高了&#xff0c;比当时一个月的工资都高&#xff0c;感叹网络安全这帮人真舍得花钱&#xff0c;遂放弃。后来入职网络安全公司&#xff0c;考了一个CISP&#xff0c;在工作中逐渐…

torch.argsorttorch.gather

文章目录 1. 举例说明2. pytorch 代码 1. 举例说明 torch.argsort 的作用是可以将矩阵中的元素进行从小到大排序&#xff0c;得到对应的序号。假设我们有一个向量a表示如下 a [ 8 , 7 , 6 , 9 , 7 ] \begin{equation} a[8,7,6,9,7] \end{equation} a[8,7,6,9,7]​​ 那么从小…

JSON数据格式介绍

2.5 JSON 2.5.1.JSON格式的用途 在开发中凡是涉及到『跨平台数据传输』&#xff0c;JSON格式一定是首选 2.5.2.JSON格式的说明 1.JSON数据两端要么是{}&#xff0c;要么是[] {}定义JSON对象[]定义JSON数组 2.JSON对象的格式是&#xff1a;json {key:value,key:value,...,ke…

(性能测试)性能测试工具 2.jmeter的环境搭建 3jmeter元件和4使用实例 5jmeter元件和参数化

目录 性能测试工具 性能测试工具 jemeter环境搭建 jmeter的常用目录介绍 jmeter修改语言和主题--jmeter界面的汉化 jmeter元件 jmeter元件和组件的介绍 jmeter的作用域原则 jmeter的执行顺序 案例&#xff1a;执行顺序 jmeter使用案例 jmeter线程组的介绍 jmeter…

Qt程序基于共享内存读写CodeSys的变量

文章目录 1.背景2.结构体从CodeSys导出后导入到C2.1.将结构体从CodeSys中导出2.2.将结构体从m4文件提取翻译成c格式 3.添加RTTR注册信息4.读取PLC变量值5.更改PLC变量值6.Qt读写CodeSys的共享内存 1.背景 在文章【基于RTTR在C中实现结构体数据的多层级动态读写】中&#xff0c…

大模型架构全景解析:从Transformer到未来计算范式

1. Transformer 架构 核心模型 GPT-4、BERT、T5、LLaMA、通义千问、文心ERNIE 关键技术 多头注意力&#xff1a;GPT-4 使用 96 头注意力位置编码创新&#xff1a;LLaMA 采用 RoPE&#xff08;旋转位置编码&#xff09;&#xff0c;Claude 3 引入 ALiBi归一化优化&#xff1…

AI第一天 自我理解笔记--微调大模型

目录 1. 确定目标&#xff1a;明确任务和数据 2. 选择预训练模型 3. 数据预处理 (1) 数据清洗与格式化 (2) 划分数据集 (3) 数据加载与批处理 4. 构建微调模型架构 (1) 加载预训练模型 (2) 修改模型尾部&#xff08;适配任务&#xff09; (3) 冻结部分层&#xff08;可…

计算机视觉——深入理解卷积神经网络与使用卷积神经网络创建图像分类算法

引言 卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;简称 CNNs&#xff09;是一种深度学习架构&#xff0c;专门用于处理具有网格结构的数据&#xff0c;如图像、视频等。它们在计算机视觉领域取得了巨大成功&#xff0c;成为图像分类、目标检测、图像分…

[C++面试] 关于deque

一、入门 1、deque与vector的区别 deque的迭代器包含以下信息&#xff1a; 当前缓冲区指针&#xff08;current_buffer&#xff09;当前元素在缓冲区内的位置&#xff08;current&#xff09;中控器的位置&#xff08;map&#xff09; 每次移动迭代器时&#xff0c;需检查是…

服务性能防腐体系:基于自动化压测的熔断机制

01# 背景 在系统架构的演进过程中&#xff0c;项目初始阶段都会通过压力测试构建安全护城河&#xff0c;此时的服务性能与资源水位保持着黄金比例关系。然而在业务高速发展时期&#xff0c;每个冲刺周期都被切割成以业务需求为单位的开发单元&#xff0c;压力测试逐渐从必选项…

SpringBoot 和vue前后端配合开发网页拼图10关游戏源码技术分享

今天分享一个 前后端结合 的网页游戏 开发项目源码技术。 这也是我第一次写游戏类的程序&#xff0c;虽然不是特别复杂的游戏&#xff0c;但是是第一次写&#xff0c;肯定要记录一下了&#xff0c;哈哈。 游戏的内容 就是 我们显示中玩的那个 拼图碎片的 游戏&#xff0c;类似下…

【k8s002】k8s健康检查与故障诊断

k8s健康检查与故障诊断 ‌一、集群状态检查‌ ‌检查节点健康状态‌ kubectl get nodes -o wide # 查看节点状态及基本信息 kubectl describe node <node-name> # 分析节点详细事件&#xff08;如资源不足、网络异常&#xff09; kubectl top nodes …

01-Canvas-使用fabric初始

fabric官网&#xff1a; https://fabric5.fabricjs.com/demos/ 创建画布并绘制 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sca…

【机器学习-基础知识】统计和贝叶斯推断

1. 概率论基本概念回顾 1. 概率分布 定义: 概率分布(Probability Distribution)指的是随机变量所有可能取值及其对应概率的集合。它描述了一个随机变量可能取的所有值以及每个值被取到的概率。 对于离散型随机变量,使用概率质量函数来描述。对于连续型随机变量,使用概率…

常见限流算法及实现

1. 固定窗口计数器&#xff08;Fixed Window Counter&#xff09; 原理&#xff1a;在固定时间窗口&#xff08;如1分钟&#xff09;内统计请求数&#xff0c;超过阈值则拒绝后续请求。优点&#xff1a;实现简单&#xff0c;内存占用低。缺点&#xff1a;存在窗口切换时的流量…

《TCP/IP网络编程》学习笔记 | Chapter 18:多线程服务器端的实现

《TCP/IP网络编程》学习笔记 | Chapter 18&#xff1a;多线程服务器端的实现 《TCP/IP网络编程》学习笔记 | Chapter 18&#xff1a;多线程服务器端的实现线程的概念引入线程的背景线程与进程的区别 线程创建与运行pthread_createpthread_join可在临界区内调用的函数工作&#…

创新实践分享:基于边缘智能+扣子的智能取物机器人解决方案

在 2024 年全国大学生物联网设计竞赛中&#xff0c;火山引擎作为支持企业&#xff0c;不仅参与了赛道的命题设计&#xff0c;还为参赛队伍提供了相关的硬件和软件支持。以边缘智能和扣子的联合应用为核心&#xff0c;参赛者们在这场竞赛中展现出了卓越的创新性和实用性&#xf…

QT:动态属性和对象树

动态对象 1.添加Q_PROPERTY对象 #ifndef MYPROPERTYCLASS_H #define MYPROPERTYCLASS_H#include <QObject>class MyPropertyClass : public QObject {Q_OBJECTQ_PROPERTY(QString mask READ mask WRITE setMask NOTIFY maskChanged) public:explicit MyPropertyClass(Q…

MobileNet家族:从v1到v4的架构演进与发展历程

MobileNet 是一个专为移动设备和嵌入式系统设计的轻量化卷积神经网络&#xff08;CNN&#xff09;家族&#xff0c;旨在在资源受限的环境中实现高效的图像分类、对象检测和语义分割等任务。自 2017 年首次推出以来&#xff0c;MobileNet 经历了从 v1 到 v4 的多次迭代&#xff…

在 Windows 上使用 choco 安装 mkcert 并配置 Vue 运行HTTPS

解决在Windows上使用Vue本地运行HTTPS的问题,vue-cli或vite都可以使用 步骤 1&#xff1a;确认 Chocolatey 是否已安装 1. 检查 choco 命令是否可用 打开 PowerShell&#xff08;管理员权限&#xff09;&#xff0c;输入&#xff1a; choco -v如果显示版本号&#xff08;如…