uni-app 自定义运行基座无法获得录音权限
uni-app 自定义运行基座无法获得录音权限
信息类别 | 详情 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC系统版本 | win10 |
HBuilderX | 正式版 |
HBuilderX版本 | 3.8.12 |
手机系统 | Android |
手机系统版本 | Android 9.0 |
手机厂商 | 努比亚 |
手机机型 | Z17 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
- manifest.json的App权限配置已经配置了android.permission.RECORD_AUDIO
预期结果:
- 获得录音权限
实际结果:
- 没有显示这个权限,更没法获得
bug描述:
自定义运行基座无法获得录音权限,在manifest.json的App权限配置已经配置了android.permission.RECORD_AUDIO,还是提示没有权限,如下图,
更多关于uni-app 自定义运行基座无法获得录音权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html
已经卸载过很多次了,昨天试了半天了也不行,今天早上一来,一试又好了,我又换了一个项目,再回过头再一试,又不行了,之后再卸载也不行了。
需要主动请求授权
plus.android.requestPermissions([‘android.permission.RECORD_AUDIO’], function(e) {
if (e.deniedAlways.length > 0) {
console.log('Always Denied!!! ’ + e.deniedAlways.toString());
}
if (e.deniedPresent.length > 0) {
console.log('Present Denied!!! ’ + e.deniedPresent.toString());
}
if (e.granted.length > 0) {
console.log('Granted!!! ’ + e.granted.toString());
}
}, function(e) {
console.log(‘Request Permissions error:’ + JSON.stringify(e));
});
上面第2个图的插件不就是主动请求权限吗?封装的那个wa-permissin那个插件
出现同样的问题 有人知道怎么回事吗
兄弟解决了没
在uni-app中,如果自定义运行基座无法获得录音权限,这通常与权限申请流程或配置有关。以下是一个详细的步骤和代码示例,展示如何在uni-app中申请并处理录音权限。
步骤一:配置manifest.json
首先,确保在manifest.json
文件中已经配置了录音权限。
{
"mp-weixin": { // 微信小程序
"appid": "your-app-id",
"setting": {
"permission": {
"scope.record": {
"desc": "你的应用需要录音权限来录制音频"
}
}
}
},
"app-plus": { // App平台
"distribute": {
"android": {
"permissions": [
"android.permission.RECORD_AUDIO"
]
},
"ios": {
"plist": [
{
"key": "NSMicrophoneUsageDescription",
"string": "你的应用需要录音权限来录制音频"
}
]
}
}
}
}
步骤二:前端代码申请权限
在需要录音的页面或组件中,使用JavaScript代码申请录音权限。
// 引入uni的录音管理模块
const recorderManager = uni.getRecorderManager();
// 监听录音权限状态变化
uni.getSetting({
success: (res) => {
if (!res.authSetting['scope.record']) {
// 用户未授权录音权限,则引导用户授权
uni.authorize({
scope: 'scope.record',
success: () => {
console.log('录音权限申请成功');
startRecording();
},
fail: () => {
console.log('录音权限申请失败');
// 处理用户拒绝授权的情况,例如显示提示信息
uni.showModal({
title: '提示',
content: '您拒绝了录音权限,将无法录音',
showCancel: false
});
}
});
} else {
// 用户已授权,直接开始录音
startRecording();
}
}
});
// 开始录音的函数
function startRecording() {
recorderManager.start({
format: 'mp3',
success: () => {
console.log('录音开始');
},
fail: (err) => {
console.error('录音失败', err);
}
});
}
注意事项
- 权限申请时机:建议在需要录音的功能触发时申请权限,而不是在应用启动时。
- 用户引导:当用户拒绝权限时,给出明确的提示,并告知录音权限的重要性。
- 平台差异:不同平台(如微信小程序、App)的权限申请流程略有不同,确保在每个平台上都进行了正确的配置。
通过以上步骤和代码,你应该能够在uni-app中正确地申请和处理录音权限。如果仍然遇到问题,建议检查基座配置和前端代码是否有遗漏或错误。