var isIos
// #ifdef APP-PLUS
isIos = (plus.os.name == 'iOS')
// 判断麦克风权限是否开启
function judgeIosPermissionRecord() {
return new Promise((resolve) => {
if(isIos) {
var result = false;
var avaudiosession = plus.ios.import("AVAudioSession");
var avaudio = avaudiosession.sharedInstance();
var permissionStatus = avaudio.recordPermission();
console.log("permissionStatus:" + permissionStatus);
if (permissionStatus == 1684369017 || permissionStatus == 1970168948) {
console.log("麦克风权限没有开启");
uni.showModal({
title: '提示',
content: '需要麦克风权限才能使用录音功能,是否去设置开启?',
success: function(res) {
if (res.confirm) {
gotoAppPermissionSetting();
}
}
});
resolve(false);
} else {
result = true;
console.log("麦克风权限已经开启");
}
plus.ios.deleteObject(avaudiosession);
resolve(result);
} else {
var PackageManager = plus.android.importClass("android.content.pm.PackageManager");
var main = plus.android.runtimeMainActivity();
var checkPermission = main.checkSelfPermission("android.permission.RECORD_AUDIO");
if(checkPermission == PackageManager.PERMISSION_GRANTED) {
console.log("麦克风权限已经开启");
resolve(true);
} else {
console.log("麦克风权限没有开启");
plus.android.requestPermissions(
['android.permission.RECORD_AUDIO'],
function(e) {
if (e.deniedAlways.length > 0) { // 权限被永久拒绝 //用户没有选择竟然也是跟永久拒绝返回的参数一样(暂时无解),微信也是这样做的
console.log('永久拒绝!' + e.deniedAlways.toString());
uni.showModal({
title: '提示',
content: '需要麦克风权限才能使用录音功能,是否去设置开启?',
success: function(res) {
if (res.confirm) {
gotoAppPermissionSetting();
}
}
});
resolve(false);
} else if (e.deniedPresent.length > 0) { // 权限被临时拒绝
console.log('临时拒绝!' + e.deniedPresent.toString());
resolve(false);
} else if (e.granted.length > 0) { // 权限被允许
console.log('已授权!' + e.granted.toString());
resolve(true);
} else {
console.log('未做选择');
resolve(false);
}
},
function(e) {
console.log('请求权限错误:' + JSON.stringify(e));
resolve(false);
}
);
}
}
});
}
//跳转设置
function gotoAppPermissionSetting() {
if (isIos) {
var UIApplication = plus.ios.import('UIApplication')
var application2 = UIApplication.sharedApplication()
var NSURL2 = plus.ios.import('NSURL')
// var setting2 = NSURL2.URLWithString("prefs:root=LOCATION_SERVICES");
var setting2 = NSURL2.URLWithString('app-settings:')
application2.openURL(setting2)
plus.ios.deleteObject(setting2)
plus.ios.deleteObject(NSURL2)
plus.ios.deleteObject(application2)
} else {
// console.log(plus.device.vendor);
var Intent = plus.android.importClass('android.content.Intent')
var Settings = plus.android.importClass('android.provider.Settings')
var Uri = plus.android.importClass('android.net.Uri')
var mainActivity = plus.android.runtimeMainActivity()
var intent = new Intent()
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
var uri = Uri.fromParts('package', mainActivity.getPackageName(), null)
intent.setData(uri)
mainActivity.startActivity(intent)
}
}