Quagga条码扫描器无法在WebView中工作

时间:2019-03-01 19:17:17

标签: android webview quagga

我有一个带有条形码读取器的测试网站,可从此处复制粘贴:[https://a.kabachnik.info/a-javascript-barcode-reader-with-bootstrap-3-and-quaggajs.html]

在使用chrome浏览器的笔记本电脑上,效果很好。 在使用chrome浏览器的手机中,效果很好。

问题在于我在android studio中创建的WebView。 Web视图打开的URL与上面提到的URL相同,但是条形码阅读器页面抛出并出现错误: NotAllowedError:权限被拒绝

因此,此错误导致我更改了Web视图中的某些权限,我尝试启用了摄像头,Internet,写入/读取外部存储,但没有任何帮助。

我的网络视图部分:

我的 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}
                }
            }
        }
    }

任何帮助/提示表示赞赏。

0 个答案:

没有答案