Foros del Web » Programando para Internet » Android »

Zbar con Webview Android

Estas en el tema de Zbar con Webview Android en el foro de Android en Foros del Web. Buenas a todos, estoy intentando añadir Zbar, que simplemente es una librería, el cual usa la cámara del teléfono y permite leer códigos QR y ...
  #1 (permalink)  
Antiguo 14/09/2013, 09:54
 
Fecha de Ingreso: septiembre-2012
Mensajes: 17
Antigüedad: 12 años, 2 meses
Puntos: 0
Zbar con Webview Android

Buenas a todos, estoy intentando añadir Zbar, que simplemente es una librería, el cual usa la cámara del teléfono y permite leer códigos QR y códigos de barras.

Mi problema es cuando pulso en el enlace <a href=""> o un <button> carga el mensaje 'Load camera...' pero automáticamente se cierra la app. Y no muestra lo típico de "La app se cerró inesperadamente"

Código:
   mWebView.addJavascriptInterface(new WebViewInterface(), "MainActivityInterface");

    public class WebViewInterface{
      @JavascriptInterface

      public void showToast(){
          Toast toast1 =
                    Toast.makeText(getApplicationContext(),
                            "Load camera...", Toast.LENGTH_SHORT);
                toast1.show();
         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, "Cámara no disponible", Toast.LENGTH_SHORT).show();
      }
     }

      public boolean isCameraAvailable() {
       PackageManager pm = getPackageManager();
      return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
     }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      switch (requestCode) {
          case ZBAR_SCANNER_REQUEST:
              if (resultCode == RESULT_OK) {
      Toast.makeText(this, "Scan Result = " +    data.getStringExtra(ZBarConstants.SCAN_RESULT), Toast.LENGTH_SHORT).show();
              } else if(resultCode == RESULT_CANCELED && data != null) {
                  String error = data.getStringExtra(ZBarConstants.ERROR_INFO);
                  if(!TextUtils.isEmpty(error)) {
                      Toast.makeText(this, error, Toast.LENGTH_SHORT).show();
                  }
              }
              break;
         }
      }
Javascript:
Código HTML:
<script>
function showAndroidToast(){
MainActivityInterface.showToast();
}
</script> 
¿Alguien puede ayudarme?

Etiquetas: activity, app, java, todo, webview
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:08.