uni-app录音需要https权限,manifest配置devServer:{ "https":true}在vue2项目有效,vue3无效
uni-app录音需要https权限,manifest配置devServer:{ “https”:true}在vue2项目有效,vue3无效
问题描述
录音需要https才能有权限,但是 manifest 里面配置 devServer:{ "https":true}
,vue2项目有效,vue3无效,vue3 提示:不支持的协议
客户端和服务器不支持常用的 SSL 协议版本或密码套件。 vue2 正常使用。配置相同,只改了 vue 版本就不行了.
这么久都没人解答吗。。。
更多关于uni-app录音需要https权限,manifest配置devServer:{ "https":true}在vue2项目有效,vue3无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
vue3 是 vite 项目,去 viteconfig 里修改
在Vue 3项目中,如果你遇到uni-app录音功能需要HTTPS权限,而manifest
配置中的devServer: { "https": true }
在Vue 2项目有效但在Vue 3项目中无效的问题,这通常是由于项目配置或uni-app版本差异导致的。以下是一些可能的解决方案,结合具体的代码或配置调整示例。
1. 确保uni-app和依赖版本更新
首先,确保你的uni-app和相关依赖库是最新版本。这有助于避免已知的bug或不兼容问题。
# 更新uni-app CLI
npm update -g @dcloudio/uni-cli
# 在你的项目中更新uni-app相关依赖
npm update @dcloudio/uni-*
2. 配置HTTPS开发服务器
在Vue 3项目中,如果manifest.json
中的devServer
配置不起作用,你可以尝试在vue.config.js
(如果你使用的是Vue CLI)中配置HTTPS。
// vue.config.js
module.exports = {
devServer: {
https: true, // 启用HTTPS
ssl: {
key: fs.readFileSync('/path/to/your/server.key'), // 替换为你的SSL密钥路径
cert: fs.readFileSync('/path/to/your/server.crt') // 替换为你的SSL证书路径
}
}
};
注意:你需要有有效的SSL证书和密钥文件。对于开发环境,你也可以使用自签名证书。
3. 检查uni-app项目配置
确保manifest.json
中的其他相关配置正确无误,特别是关于网络请求的部分。
// manifest.json
{
"mp-weixin": { // 或其他平台配置
"appid": "your-app-id",
"setting": {
"requestDomain": ["https://yourdomain.com"] // 如果有限制请求域,确保包含你的HTTPS域
}
},
"h5": {
"devServer": {
"https": true
}
}
}
4. 使用HTTPS代理
如果你的后端服务不支持HTTPS,但前端需要,可以在开发环境中设置一个HTTPS代理。
// vue.config.js
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://your-backend-server', // 后端服务地址
changeOrigin: true,
secure: false, // 如果是自签名证书,设置为false
pathRewrite: { '^/api': '' }
}
}
}
};
结论
如果上述方法仍然无法解决问题,建议检查uni-app的官方文档和社区论坛,看看是否有其他开发者遇到并解决了类似的问题。此外,确保你的开发环境和工具链(如Node.js版本)是最新的,有时候版本差异也会导致配置不生效。