Quagga сканер штрих-кода не работает в WebView - PullRequest
0 голосов
/ 01 марта 2019

У меня есть тестовый веб-сайт со считывателем штрих-кода, скопированный здесь: [https://a.kabachnik.info/a-javascript-barcode-reader-with-bootstrap-3-and-quaggajs.html]

На моем ноутбуке, использующем браузер Chrome, работает нормально.В моем мобильном телефоне, использующем браузер Chrome, работает нормально.

Проблема в WebView, который я создал в Android Studio.Веб-просмотр открывает тот же URL-адрес, что и упомянутый выше, но выбрасывает страницу считывателя штрих-кода и выдает ошибку: NotAllowedError: Разрешение отклонено

Так что эта ошибка приводит меня к изменению некоторых разрешений в моем веб-просмотре, я пыталсявключить камеру, интернет, записать / прочитать внешнее хранилище, но ничего не помогло.

Моя часть веб-просмотра:

часть моего AndroidManifest.xml :

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.front" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" />

Часть Основная деятельность: Java-файл:

   mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setDomStorageEnabled(true);
        mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);


        boolean permissionGranted2 = ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED;
        if(permissionGranted2) {
            // {Some Code}
        } else {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 200);
        }

        boolean permissionGranted3 = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
        if(permissionGranted3) {
            // {Some Code}
        } else {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 200);
        }

        boolean permissionGranted4 = ActivityCompat.checkSelfPermission(this, Manifest.permission.MEDIA_CONTENT_CONTROL) == PackageManager.PERMISSION_GRANTED;
        if(permissionGranted4) {
            // {Some Code}
        } else {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.MEDIA_CONTENT_CONTROL}, 200);

        }boolean permissionGranted5 = ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
        if(permissionGranted5) {
            // {Some Code}
        } else {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 200);
        }



    }





    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        switch (requestCode) {
            case 200: {
                if(grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    // {Some Code}
                }
            }
        }
    }

Любая помощь / подсказка приветствуется.

...