将zbar扫描仪集成到Android应用程序中

时间:2012-09-20 21:06:58

标签: android android-intent qr-code

我对android非常新,所以对我很陌生。所以在我的onCreate方法中我创建了一个webView,然后加载保存在我的assets文件夹中的HTML文件。这一切都很好。按下按钮时,它会使用javascript向此方法发送呼叫以打开qr代码扫描程序。

webView.setWebViewClient(new WebViewClient()        
    {  
        /* On Android 1.1 shouldOverrideUrlLoading() will be called every time the user clicks a link, 
         * but on Android 1.5 it will be called for every page load, even if it was caused by calling loadUrl()! */  
        @Override  
        public boolean shouldOverrideUrlLoading(WebView view, String url)  
        {               
            System.out.println(url);                

            if (url.equals("fake://qr_scan")) 
            {
                launchQRScanner(view);
            }
            return false;  
        }  
    }); 

这是方法launchQRScanner()

  public void launchQRScanner(View v) {
    if (isCameraAvailable()) {
        Intent intent = new Intent(this, ZBarScannerActivity.class);
        intent.putExtra(ZBarConstants.SCAN_MODES, new int[]{Symbol.QRCODE});
        startActivityForResult(intent, ZBAR_SCANNER_REQUEST);

    } else {
        Toast.makeText(this, "Rear Facing Camera Unavailable", Toast.LENGTH_SHORT).show();
    }
}

所以这是第一次按下按钮。 qr代码阅读器作为意图打开,它扫描,消失并正确返回值。但是每次按下方法后,当按下按钮时,不会调用onOverrideUrlLoading()。可能与离开应用程序和回来有关?似乎无法弄明白。  感谢您的帮助!

BTW这是我用来实现qr代码阅读器的项目 https://github.com/DushyanthMaguluru/ZBarScanner

1 个答案:

答案 0 :(得分:0)

已修复,只需在扫描条形码后重新加载webView。简单的修复。

相关问题