当浏览器需要摄像头或者麦克风时,都会弹出确认摄像头和麦克风权限弹框
小编最近在做webrtc的项目,用的是内嵌的X5内核的webview进行语音视频通话,但每次启动app都会弹出权限对话框,原本想在js上解决这个问题,结果是没法解决,因为这对于浏览器来说是一个安全性的问题,防止访问网页时,在不知名的情况下摄像头被打开,涉及到隐私的问题,所以只能在webview中想办法。
原生的webview在6.0以上是有具体的api可以直接去掉,小编用的webrtc在5.0以下,原生webview是无法使用的,所以只能用X5的webview,看完官方api以后,并没找到具体的方法,只能试下向官方反馈了。
说实话,官方还是很给力的,过不了多久就用QQ把解决方法发给我了
下面是官方文档的截图:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150webview_calling.setWebChromeClientExtension(new IX5WebChromeClientExtension() { @Override public Object getX5WebChromeClientInstance() { return null; } @Override public View getVideoLoadingProgressView() { return null; } @Override public void onAllMetaDataFinished(IX5WebViewExtension ix5WebViewExtension, HashMap<String, String> hashMap) { } @Override public void onBackforwardFinished(int i) { } @Override public void onHitTestResultForPluginFinished(IX5WebViewExtension ix5WebViewExtension, IX5WebViewBase.HitTestResult hitTestResult, Bundle bundle) { } @Override public void onHitTestResultFinished(IX5WebViewExtension ix5WebViewExtension, IX5WebViewBase.HitTestResult hitTestResult) { } @Override public void onPromptScaleSaved(IX5WebViewExtension ix5WebViewExtension) { } @Override public void onPromptNotScalable(IX5WebViewExtension ix5WebViewExtension) { } @Override public boolean onAddFavorite(IX5WebViewExtension ix5WebViewExtension, String s, String s1, JsResult jsResult) { return false; } @Override public void onPrepareX5ReadPageDataFinished(IX5WebViewExtension ix5WebViewExtension, HashMap<String, String> hashMap) { } @Override public boolean onSavePassword(String s, String s1, String s2, boolean b, Message message) { return false; } @Override public boolean onSavePassword(ValueCallback<String> valueCallback, String s, String s1, String s2, String s3, String s4, boolean b) { return false; } @Override public void onX5ReadModeAvailableChecked(HashMap<String, String> hashMap) { } @Override public void addFlashView(View view, ViewGroup.LayoutParams layoutParams) { } @Override public void h5videoRequestFullScreen(String s) { } @Override public void h5videoExitFullScreen(String s) { } @Override public void requestFullScreenFlash() { } @Override public void exitFullScreenFlash() { } @Override public void jsRequestFullScreen() { } @Override public void jsExitFullScreen() { } @Override public void acquireWakeLock() { } @Override public void releaseWakeLock() { } @Override public Context getApplicationContex() { return null; } @Override public boolean onPageNotResponding(Runnable runnable) { return false; } @Override public Object onMiscCallBack(String s, Bundle bundle) { return null; } @Override public void openFileChooser(ValueCallback<Uri[]> valueCallback, String s, String s1) { } @Override public void onPrintPage() { } @Override public void onColorModeChanged(long l) { } @Override public boolean onPermissionRequest(String s, long l, MediaAccessPermissionsCallback mediaAccessPermissionsCallback) { long allowed = 0; allowed = allowed | MediaAccessPermissionsCallback.ALLOW_AUDIO_CAPTURE; boolean retain = true; mediaAccessPermissionsCallback.invoke(s, allowed,retain); return true; } });
在IX5WebChromeClientExtension重写方法onPermissionRequest里面实现默认允许
总感觉大家也会遇到这种问题,向大家分享下,小编这边只在5.0以下试过是没问题的,高版本的不太确定,大家可以试试
最后
以上就是拼搏战斗机最近收集整理的关于X5内核使用webrtc——默认允许摄像头和麦克风权限的全部内容,更多相关X5内核使用webrtc——默认允许摄像头和麦克风权限内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复