Доступ к NFC через Andoid WebView
Пытаюсь реализовать работу web приложения на webview Android. Возникла проблема при попытке сканировать NFC метки через телефон из этого самого web-приложения. Выкидывает ошибку с текстом: "Error, scan failed to start. NotAllowedError: NFC permission request denied." внутри WebView. Уверен, что приложение имеет необходимые разрешения.
В манифесте запрос необходимых разрешений прописал:
<uses-permission android:name="android.permission.NFC" />
Тестировал на данной странице, из браузера работает https://nu-book.github.io/test-form-generator/mod-nfc.html
Подскажите пожалуйста, как можно передать доступ к NFC для WebView, если это возможно.
Ответы (1 шт):
Возможно это связано с необходимостью разрешения в самом браузере. Попробуйте добавить след код.
webview.setWebChromeClient(new WebChromeClient() {
@Override
public void onPermissionRequest(final PermissionRequest request) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
request.grant(request.getResources());
}
}
});
Судя по документации данный метод NDEFReader.scan не поддерживается в WebView Android.
Возможно, не в тему, но как вариант можно рассмотреть следующий вариант. В нашем приложении мы использовали JavascriptInterface для обмена данными между WebView и нативов. И через JavascriptInterface Web страница запускала чтение данных через NFC и получала данные через обратный вызов JS методов.