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.rhkb.cn/news/36731.html

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

相关文章

【深度学习与大模型基础】第7章-特征分解与奇异值分解

一、特征分解 特征分解&#xff08;Eigen Decomposition&#xff09;是线性代数中的一种重要方法&#xff0c;广泛应用于计算机行业的多个领域&#xff0c;如机器学习、图像处理和数据分析等。特征分解将一个方阵分解为特征值和特征向量的形式&#xff0c;帮助我们理解矩阵的结…

麒麟V10 arm cpu aarch64 下编译 RocketMQ-Client-CPP 2.2.0

国产自主可控服务器需要访问RocketMQ消息队列&#xff0c;最新的CSDK是2020年发布的 rocketmq-client-cpp-2.2.0 这个版本支持TLS模式。 用默认的版本安装遇到一些问题&#xff0c;记录一下。 下载Releases apache/rocketmq-client-cpp GitHubhttps://github.com/apache/roc…

Moonlight-16B-A3B: 变革性的高效大语言模型,凭借Muon优化器打破训练效率极限

近日&#xff0c;由Moonshot AI团队推出的Moonlight-16B-A3B模型&#xff0c;再次在AI领域引发了广泛关注。这款全新的Mixture-of-Experts (MoE)架构的大型语言模型&#xff0c;凭借其创新的训练优化技术&#xff0c;特别是Muon优化器的使用&#xff0c;成功突破了训练效率的极…

在windows下安装windows+Ubuntu16.04双系统(下)

这篇文章的内容主要来源于这篇文章&#xff0c;为正式安装windowsUbuntu16.04双系统部分。在正式安装前&#xff0c;若还没有进行前期准备工作&#xff08;1.分区2.制作启动u盘&#xff09;&#xff0c;见《在windows下安装windowsUbuntu16.04双系统(上)》 二、正式安装Ubuntu …

一次Linux下 .net 调试经历

背景&#xff1a; Xt160Api, 之前在windows下用.net调用&#xff0c;没有任何问题。 但是移植到Linux去后&#xff0c;.net程序 调用 init(config_path) 总是报错 /root/test 找不到 traderApi.ini (/root/test 是程序目录) 然后退出程序 解决过程: 于是考虑是不是参数传错了&…

AI爬虫 :Firecrawl的安装和详细使用案例(将整个网站转化为LLM适用的markdown或结构化数据)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 1. Firecrawl概述1.1 Firecrawl介绍1.2 Firecrawl 的特征1.3 Firecrawl 的功能1.4 Firecrawl的 API 密钥获取2. 安装和基本使用3. 使用 LLM 提取4. 无模式提取(curl语句)5. 使用操作与页面交互6. Firecrawl Cloud7. 移…

【Java集合夜话】第1篇:拨开迷雾,探寻集合框架的精妙设计

欢迎来到Java集合框架系列的第一篇文章&#xff01;&#x1f339; 本系列文章将以通俗易懂的语言&#xff0c;结合实际开发经验&#xff0c;带您深入理解Java集合框架的设计智慧。&#x1f339; 若文章中有任何不准确或需要改进的地方&#xff0c;欢迎大家指出&#xff0c;让我…

网络安全知识:网络安全网格架构

在数字化转型的主导下&#xff0c;大多数组织利用多云或混合环境&#xff0c;包括本地基础设施、云服务和应用程序以及第三方实体&#xff0c;以及在网络中运行的用户和设备身份。在这种情况下&#xff0c;保护组织资产免受威胁涉及实现一个统一的框架&#xff0c;该框架根据组…

企业级云MES全套源码,支持app、小程序、H5、台后管理端

企业级云MES全套源码&#xff0c;支持app、小程序、H5、台后管理端&#xff0c;全套源码 开发环境 技术架构&#xff1a;springboot vue-element-plus-admin 开发语言&#xff1a;Java 开发工具&#xff1a;idea 前端框架&#xff1a;vue.js 后端框架&#xff…

Web爬虫利器FireCrawl:全方位助力AI训练与高效数据抓取

Web爬虫利器FireCrawl&#xff1a;全方位助力AI训练与高效数据抓取 一、FireCrawl 项目简介二、主要功能三、FireCrawl应用场景1. 大语言模型训练2. 检索增强生成&#xff08;RAG&#xff09;&#xff1a;3. 数据驱动的开发项目4. SEO 与内容优化5. 在线服务与工具集成 四、安装…

[HelloCTF]PHPinclude-labs超详细WP-Level 6Level 7Level 8Level 9-php://协议

由于Level 6-9 关的原理都是通用的, 这里就拿第6关举例, 其他的关卡同理 源码分析 定位到代码 isset($_GET[wrappers]) ? include("php://".$_GET[wrappers]) : ; 与前几关发生变化的就是 php:// 解题分析 这一关要求我们使用 php协议 php:// 协议 php://filte…

《Linux 网络架构:基于 TCP 协议的多人聊天系统搭建详解》

一、系统概述 本系统是一个基于 TCP 协议的多人聊天系统&#xff0c;由一个服务器和多个客户端组成。客户端可以连接到服务器&#xff0c;向服务器发送消息&#xff0c;服务器接收到消息后将其转发给其他客户端&#xff0c;实现多人之间的实时聊天。系统使用 C 语言编写&#x…

Maven生命周期

三套生命周期&#xff0c;项目清理&#xff0c;项目构建&#xff0c;项目生成 我们主要关注五个阶段 clean&#xff1a;移除上一次构建生成的文件compile&#xff1a;编译项目源代码test&#xff1a;使用合适的单元测试框架运行测试package&#xff1a;将编译后的文件打包&am…

【JVM】内存区域划分,类加载机制和垃圾回收机制

本篇内容为了解 JVM 的内存区域划分&#xff0c;类加载机制&#xff0c;垃圾回收机制。实际开发中几乎用不到&#xff0c;但为了某些情况我们又不得不了解。 目录 一、JVM中的内存区域划分 1.1 内存区域划分考点 二、JVM的类加载机制 2.1 类加载流程 2.2 类加载什么时候会…

v-自定义权限指令与v-if互相影响导致报错Cannot read properties of null (reading ‘insertBefore‘)

项目场景&#xff1a; vue3vite项目中报错Cannot read properties of null (reading ‘insertBefore‘) 原因分析&#xff1a; :v-自定义权限指令与v-if互相影响 <el-button text bg type"primary" click"handleWrite(detailData,项目填报)" v-hasPe…

qt下载和安装教程国内源下载地址

qt不断在更新中&#xff0c;目前qt6日渐成熟&#xff0c;先前我们到官方下载或者国内镜像直接可以下载到exe文件安装&#xff0c;但是最近几年qt官方似乎在逐渐关闭旧版本下载通道&#xff0c;列为不推荐下载。但是qt5以其广泛使用和稳定性&#xff0c;以及积累大量代码使得qt5…

k8s1.30 部署calio网络

一、介绍 网路组件有很多种&#xff0c;只需要部署其中一个&#xff0c;推荐calio。 calio是一个纯三成的数据中心网络方案&#xff0c;calico支持广泛的平台。如k8s&#xff0c;openstack等。 calio在每一个计算节点利用linux内核&#xff0c;实现了一个高效的虚拟路由器来…

navicat导出文件密码解密

文章目录 一、概念二、导出文件1、创建的数据库连接信息2、导出带密码的连接信息3、查看导出后的文件 三、Python代码解析四、参考地址 一、概念 Navicat中导出的带密码的文件后缀是.ncx结尾的&#xff0c;里面是xml格式的文件&#xff0c;存储了数据库的连接&#xff0c;方便…

实验5:Vuex状态管理

Web前端开发技术课程实验报告 实验5&#xff1a;Vuex状态管理 一、实验目的&#xff1a; 掌握Vuex的工作原理和5个核心概念。掌握Vuex API接口的使用方法。 二、实验要求&#xff1a; 掌握mutations、actions、getters的定义和使用方法&#xff0c;完成以下实验内容。上交实…

深入解析 Linux 声卡驱动:从架构到实战

在嵌入式 Linux 设备中&#xff0c;音频功能的实现离不开 Linux 声卡驱动。而 ALSA (Advanced Linux Sound Architecture) 作为 Linux 内核的音频框架&#xff0c;提供了一整套 API 和驱动模型&#xff0c;帮助开发者快速集成音频功能。本篇文章以 WM8960 音频编解码器&#xf…