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 版本就不行了.

3 回复

这么久都没人解答吗。。。

更多关于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版本)是最新的,有时候版本差异也会导致配置不生效。

回到顶部