在用uniapp做 app的项目中,使用到了录音功能,在使用Android平板真机调试时,调用全局唯一的uni.getRecorderManager() 进行录音时,发现onStop方法回调不执行,在dcloud社区下面翻到一条评论说是没有录音权限问题,我先是执行了下面的第1步发现不行我怀疑真的是权限问题吗会不会是其他原因,但我查看了一下平板的设置好像并没有打开麦克风,然后在我手动打开了平板的麦克风之后发现成功了哎,果然还是权限问题啊,那么问题来了,怎么拉去原生app的麦克风授权呢,uni.authorize()方法并不支持app,但社区也提供了封装好的获取app授权的方法...
下面给大家整理了一下解决方法:
- 打开项目根目录下manifest.json文件勾选App权限配置下android.permission.RECORD_AUDIO
- 下载插件市场的js-sdk插件去拉取平板的麦克风授权,链接也给大家放下面啦App权限判断和提示 - DCloud 插件市场
- 上一步链接中官方方法写的很详细,大家按自己需要去调用就可以了,我使用的是方法2,引入后直接把方法融合到自己项目里就ok啦
import permision from "@/js_sdk/wa-permission/permission.js"
async requestAndroidPermission(permisionID) {
var result = await permision.requestAndroidPermission(permisionID)
var strStatus
if (result == 1) {
strStatus = "已获得授权"
} else if (result == 0) {
strStatus = "未获得授权"
} else {
strStatus = "被永久拒绝权限"
}
uni.showModal({
content: permisionID + strStatus,
showCancel: false
});
},