1、store/modules/permission.js
// app权限申请处理
const state = {
// 处理应用程序权限请求
CAMERA: false,
WRITE_EXTERNAL_STORAGE: false,
ACCESS_FINE_LOCATION: false,
CALL_PHONE: false,
isIos: uni.getSystemInfoSync().platform == 'ios',
mapping: {
'CAMERA': {
title: '摄像头权限说明',
content: '摄像头权限将用于拍摄照片和视频。这样,您可以在应用程序中记录瞬间、分享内容或进行其他相关操作。',
methods: 'SET_CAMERA'
},
'WRITE_EXTERNAL_STORAGE': {
title: '存储空间/照片权限申请说明',
content: '便于您使用该功能上传您的照片/图片/视频及用于更换头像、发布商品/分享、下载、与客服沟通等场景中读取和写入相册和文件内容。',
methods: 'SET_WRITE_EXTERNAL_STORAGE'
},
'ACCESS_FINE_LOCATION': {
title: '地理位置权限申请说明',
content: '****应用程序可以提供基于位置的服务、定位导航、附近搜索等功能。',
methods: 'SET_ACCESS_FINE_LOCATION'
},
'CALL_PHONE': {
title: '拨打/管理电话权限申请说明',
content: '便于您使用该功能联系买家、骑手或者客服、业务经理与联系等场景下使用',
methods: 'SET_CALL_PHONE'
}
}
}
const mutations = {
// 管理权限告知目的
SET_CAMERA(state, val) {
state.CAMERA = val
},
SET_WRITE_EXTERNAL_STORAGE(state, val) {
state.WRITE_EXTERNAL_STORAGE = val
},
SET_CALL_PHONE(state, val) {
state.CALL_PHONE = val
},
SET_ACCESS_FINE_LOCATION(state, val) {
state.ACCESS_FINE_LOCATION = val
}
}
const actions = {
// 权限获取
async requestPermissions({ state, dispatch, commit }, permissionID) {
try {
if (!state[permissionID] && !state.is