我正在开发一个应用程序,我需要使用Android的WebView包含WebRTC。根据这篇文章:[https://developer.chrome.com/multidevice/webview/overview]自WebView v36以来完全支持它。 (我在Android 5.1.1 / Chrome 54 / Mobile Safari 537.36上进行测试。我确认它可以在独立的Chrome浏览器上运行。)
截至目前,观看WebRTC有效。
然而,广播(从相机捕获视频并将其发送到服务器)无法正常工作。注意:它适用于同一Android上的独立Chrome。
我在codenameone_settings.properties文件中包含了所有这些权限:
android.xpermissions=<uses-permission android:name="android.permission.CAMERA" android:required="true"/>\
<uses-permission android:name="android.permission.RECORD_AUDIO" android:required="true" />\
<uses-permission android:name="android.permission.INTERNET" android:required="true" />\
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:required="true" />\
<uses-permission android:name="android.permission.CAMERA" android:required="true" />\
<uses-feature android:name="android.hardware.audio.low_latency" android:required="true" />\
<uses-feature android:name="android.hardware.audio.pro" android:required="true" />\
<uses-feature android:name="android.hardware.microphone" android:required="true"/>\
<uses-feature android:name="android.hardware.camera" android:required="true" />\
<uses-feature android:name="android.hardware.camera.autofocus" android:required="true"/>\
<uses-feature android:name="android.hardware.camera" android:required="true" />\
<uses-feature android:name="android.hardware.camera.front" android:required="true" />
WebView由BrowserComponent类调用。
我知道Android代码已转换为本机代码,我相信有一种方法可以让它运行。谢谢!
答案 0 :(得分:2)
我刚看了几个示例(here和here,看起来webview需要授予一些权限才能让webrtc正常工作。
我已经为我们的Android端口设置small change,允许您授予这些权限。您只需指定允许权限的来源。您可以通过将“android.WebView.grantPermissionsFrom”显示属性设置为您要授予其权限的URL(或空格分隔的URL)来执行此操作。
e.g。
var User = new Schema({
id: String,
position: [{
_id:String,
title: String,
location: String,
start: String,
term:Number,
description:String,
date: {type: Date, default: Date.now},
applied:[{
candidate_id: String,
_id:String
}],
}]
在你的app的init()或start()方法中调用它。
注意在下次更新服务器之前,这些更改将无法使用。我不确定自从训练营正在进行以来到底是什么时候。通常是每个星期五,但由于训练营,可能会延迟到5月的第一周。