Как мы можем отключить webRTC на Android webview? - PullRequest
0 голосов
/ 03 ноября 2018

Я разрабатываю приложение VPN, и мне нужно добавить в него меню поддержки WebRTC. Где пользователь может включить и отключить эту опцию. Но я не отключил его в своем приложении. Я не знаю, как отключить его с помощью кода.

вот код, пожалуйста, проверьте и скажите, как можно решить эту проблему.

mWebView.setWebChromeClient(new WebChromeClient(){
        @TargetApi(Build.VERSION_CODES.LOLLIPOP)
        @Override
        public void onPermissionRequest(final PermissionRequest request) {
            request.deny();
        }
    });

или

mWebView.setWebChromeClient(null);

1 Ответ

0 голосов
/ 05 ноября 2018

Права доступа

Если вы не хотите вводить JS, я думаю, что ваше решение не за горами. В этом может помочь лишь небольшая часть государственного управления.

Вам нужно будет проверять разрешения AndroidManifyt и Android во время компиляции и при первом запуске пользователь использует ваше приложение, потому что вы хотите, чтобы пользователь специально разрешал / запрещал эту функцию динамически во время работы. Не постоянно возиться с настройками / разрешениями приложений для Android. Переход к настройкам и из них был бы довольно утомительным. Я также предполагаю, что этот UX - это то, чего вы пытаетесь избежать.

Таким образом, вы должны выполнять во время выполнения проверку разрешений в WebChromeClients onPermissionRequest (что в основном и есть) для каждого случая, когда это срабатывает. Вы можете использовать переменную состояния или белый список доменов, хранящихся в состоянии, чтобы пользователь мог ограничить эту функциональность и даже заблокировать ее для определенных доменов. Вы также можете специально проверить RESOURCE_VIDEO_CAPTURE и т. Д.

Например, вы можете увидеть, как я делаю блокировку домена в моем примере GitHub здесь: https://github.com/marcusbelcher/android-getUserMedia-test см. Строки 106 и 116. Здесь вы можете использовать логику переменной / состояния для блокировки определенных запросов. Это запрос на сеанс, когда кто-то запускает getUserMedia.

Это единственное место во время выполнения, которое вы можете запретить / разрешить. Более подробная информация здесь:

https://github.com/googlesamples/android-PermissionRequest

https://developer.android.com/reference/android/webkit/PermissionRequest

JS переопределяет

Если вы можете / хотите внедрить JS, вы можете внедрить и переопределить getUserMedia внутри DOM через navigator.mediaDevices.getUserMedia = undefined. Вы можете временно переместить ссылку window.t = navigator.mediaDevices.getUserMedia; navigator.mediaDevices.getUserMedia = null; и изменить ее, когда захотите.

Более подробная информация здесь:

Веб-браузер Android, загрузка файла JavaScript в папку активов

https://medium.com/appunite-edu-collection/webview-with-injected-js-script-13eb1e0257c9

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...