我对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
答案 0 :(得分:0)
已修复,只需在扫描条形码后重新加载webView。简单的修复。