在uniapp web-view组件外链页面无法调用麦克风摄像头权限?

在uniapp想要去接入livekit, 但是发现livekit并没有提供uniapp的sdk, 有 web端的sdk,就想到用uniapp的web-view来外链一个vue的a页面,在这个a页面里面接入livekit; 测试发现要https环境, 然后在windows上生成了一个自签名的pem, 解决这个问题后发现navigator.mediaDevices.getUserMedia({ audio: true })这个报错了,发现是权限问题, 再测试如果是在浏览器里面直接打开这个a页面,能够正常弹出请求麦克风权限,就是在手机基座上运行不可以. 各种AI问了一大堆,全都没办法
补充一下其他配置

<web-view 
    :src="src" 
    :webview-styles="{ 
    allowInlineMediaPlayback: true,
    androidHardwareAccelerationDisabled: false,
    userAgent: 'Mozilla/5.0 (Linux; Android 10; ...) AppleWebKit/537.36'
    }"
    @message="handleMessage" 
    ref="webviewRef" 
    :allowsInlineMediaPlayback="true"
    :mediaPlaybackRequiresUserAction="false" 
    webview-plugins="media" 
    allow="microphone;camera">
</web-view>

这些 配置是问各种ai 修修补补出来的, 然后在补充manifest

"app-plus" : {
    "allowsInlineMediaPlayback" : true,
    "mediaPlaybackRequiresUserAction" : true,
    "webView" : {
        "mixedHttps" : true, // 允许混合内容
        "hardwareAccelerated" : true // 启用硬件加速
    },
    /* 模块配置 */
    "modules" : {
        "Camera" : {},
        "Record" : {},
        "VideoPlayer" : {},
        "UIWebview" : {},
        "LivePusher" : {},
        "Audio" : {}
    },
    "permissions" : {
        "CAMERA" : {
            "description" : "应用需要使用摄像头进行视频通话"
        },
        "MICROPHONE" : {
            "description" : "应用需要使用麦克风进行语音通话"
        }
    },
    /* 应用发布信息 */
    "distribute" : {
        /* android打包配置 */
            "android" : {
                "permissions" : [
                    "<uses-feature android:name=\"android.hardware.camera\"/>",
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
                    "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
                    "<uses-permission android:name=\"android.permission.MANAGE_EXTERNAL_STORAGE\"/>",
                    "<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>"
                ],
            }
    }
    
阅读 768
2 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题