Ошибка Java: WebView navigator.permissions is undefined как поправить?
Сайт использует
navigator.permissions.query({ name: 'accelerometer' })
navigator.permissions.query({ name: 'magnetometer' })
navigator.permissions.query({ name: 'gyroscope' })
Однако я заметил, что в WebView navigator.permissions является undefined. Как это исправить и выдать сайту нужные ему права?
Вот почти полный код, который у меня есть на данный момент:
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setDomStorageEnabled(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setGeolocationEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
try {
webView.loadUrl("javascript:(function() {console.log(navigator.permissions);})()");
} catch (Exception e) {
e.printStackTrace();
}
super.onPageFinished(view, url);
}
@SuppressLint("WebViewClientOnReceivedSslError")
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
// super.onReceivedSslError(view, handler, error);
}
});
webView.setWebChromeClient(new WebChromeClient() {
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);
}
});
webView.loadUrl("https://xyz.net/");