0

私の 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コードリーダーは、スキャンして消え、値を正しく返します。しかし、ボタンが押されたときにメソッド shouldOverrideUrlLoading() が呼び出されないたびに。アプリを離れて戻ってきたことに何か関係があるのでしょうか? それを理解できないようです。

ところで、これは私がqrコードリーダーを実装するために使用したプロジェクトです https://github.com/DushyanthMaguluru/ZBarScanner

4

1 に答える 1

0

バーコードがスキャンされた後、webView をリロードする必要がありました。簡単な修正。

于 2012-09-21T21:19:27.743 に答える