uniapp编译app的应用权限判断

在uniapp开发中,我们开发编译app时,经常会用到用户手机的一些权限功能,以下是我开发中关于该功能的一些记录,希望可以帮到大家。

判断当前操作系统名称
        uni.getSystemInfoSync
const os = uni.getSystemInfoSync().osName;

console.log(os, '苹果还是安卓系统'); // android 或 ios
安卓常用权限--对应权限码

        在开发中肯定不止这些权限,这也是我搜的别人的常用权限,如需额外权限,可百度搜素即可

const androidPermissions = {
	camera: "android.permission.CAMERA", // 摄像头权限
	location: "android.permission.ACCESS_FINE_LOCATION", // 位置权限
	calendar: {
		read: "android.permission.READ_CALENDAR", // // 日历读取权限
		write: "android.permission.WRITE_CALENDAR", // // 日历写入权限
	},
	storage: {
		read: "android.permission.READ_EXTERNAL_STORAGE", // 存储读取权限
		write: "android.permission.WRITE_EXTERNAL_STORAGE", // 存储写入权限
	},
	record: "android.permission.RECORD_AUDIO", // 麦克风权限
	contact: {
		read: "android.permission.READ_CONTACTS", // 联系人读取权限
		write: "android.permission.WRITE_CONTACTS", // 联系人写入权限
	},
	sms: {
		read: "android.permission.READ_SMS", // 短信读取权限
		send: "android.permission.SEND_SMS", //短信发送权限
		receive: "android.permission.RECEIVE_SMS", // 短信接收权限
	},
	state: "android.permission.READ_PHONE_STATE", // 手机识别码权限
	phone: "android.permission.CALL_PHONE", // 拨打电话权限
	log: "android.permission.READ_CALL_LOG", // 通话记录权限
};
获取你要检查的权限数组

该方法是根据你传递参数,从上述对象蒋对应权限码组装返还一个数组或字符串

function getPermissionList(permissionID) {
	const id = androidPermissions[permissionID];
	const list = [];
	if (typeof id == "string") {
		list[0] = id;
	} else {
		for (let key in id) {
			list.push(id[key]);
		}
	}
	return list;
}
安卓检测方法

安卓可以使用plus.android.requestPermissions方法来检测权限

此方法接受三个参数:
permissions:权限 ID;
res:成功返回的数据;
err: 失败返回的数据;

function androidPermissionCheck(permissionID) {
	return new Promise((resove, reject) => {
		if (plus) {
			let ids = getPermissionList(permissionID);
			plus.android.requestPermissions(ids,
				(result) => {
					let res = 0;
					for (let i = 0; i < result.granted.length; i++) {
						let permission = result.granted[i];
						console.log("已获取的权限:", permission);
						res = 1;
					}
					for (let i = 0; i < result.deniedPresent.length; i++) {
						let permission = result.deniedPresent[i];
						console.log("本次已拒绝的权限:", permission);
						res = 0;
					}
					for (let i = 0; i < result.deniedAlways.length; i++) {
						let permission = result.deniedAlways[i];
						console.log("永久拒绝的权限:", permission);
						res = -1;
					}
					resolve({
						code: 1,
						data: res,
					});
				},
				(error) => {
					reject({
						code: 2,
						data: `code:${error.code},msg:${error.message}!`,
					});
				}
			)
		}
	})
}

注:苹果的检测权限太多,需要单独弄,还在整理,整理后会持续更新

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值