Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 07/03/14, 11:45:29
Array

[xs_avatar]
Napster87 Napster87 no está en línea
Miembro del foro
 
Fecha de registro: may 2013
Mensajes: 74
Tu operador: Movistar

Codigo Qr url a browser

Hola! estoy usando la libreria de zxing para usar su lector de codigos qr.Mi idea es abrir una pagina a partir de una url que obtengo del codigo que genero.Este lo he creado y puse la direccion de una web,aplicando un show se que lee perfectamente la direccion pero al mostrarla se crashea. Estoy haciendo esto:

Código:
Intent intent = new Intent("prueba.android.turismo.SCAN");
startActivityForResult(intent, 0);
	
	public void onActivityResult(int requestCode, int resultCode, Intent intent) {
	    if (requestCode == 0) {
	        if (resultCode == RESULT_OK) {
	            String contenido = intent.getStringExtra("SCAN_RESULT");
	            Toast.makeText(getApplicationContext(), "Lectura QR: "+contenido, Toast.LENGTH_LONG).show();
	  	        String formato = intent.getStringExtra("SCAN_RESULT_FORMAT");
	            Intent web = new Intent(Intent.ACTION_VIEW, 
        				Uri.parse(contenido));
		startActivity(web);

	            // Hacer algo con los datos obtenidos.
	        } else if (resultCode == RESULT_CANCELED) {
	            // Si se cancelo la captura.
	        }
	    }
	}
En contenido almaceno la url del codigo qr,pero no consigo abrir el browser de esta manera,alguna sugerencia?se crashea y en el log dice "no activity found to handle intent".
Tengo una activity dedicada a esta parte,es algo tonto pero no logro averiguarlo...

Saludos!!
Responder Con Cita


  #2  
Viejo 08/03/14, 02:14:50
Array

[xs_avatar]
Manu14s Manu14s no está en línea
Usuario novato en la web
 
Fecha de registro: oct 2013
Mensajes: 15
Tu operador: Movistar

Crea una actividad que contenga un webview(en su correspondiente layout claro).en esta actividad webview tendras que ingresar una url. En vez de pasarle una url le pasas el valor de tu variable contenido. En el if ,le metes que inicie esta actividad webview. Es facil, sino sabes como hacerlo ,me lo dices y te lo detallo mas. Un saludo
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 10/03/14, 09:56:55
Array

[xs_avatar]
Napster87 Napster87 no está en línea
Miembro del foro
 
Fecha de registro: may 2013
Mensajes: 74
Tu operador: Movistar

Gracias por la idea,asi si lo he conseguido hacer funcionar

Dejo el codigo por si le vale a alguien en un futuro:

[code]public void LectorQR(View v) {

Intent intent = new Intent("prueba.android.turismo.SCAN");
startActivityForResult(intent, 0);

}



public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contenido = intent.getStringExtra("SCAN_RESULT");
String formato = intent.getStringExtra("SCAN_RESULT_FORMAT");
Intent i = new Intent(this, LectorQR.class);
i.putExtra("contenido", contenido);
startActivity(i);

// Hacer algo con los datos obtenidos.
} else if (resultCode == RESULT_CANCELED) {
// Si se cancelo la captura.
}
}
}

Y en clase LectorQR,en oncreate:
Código:
  WebView myWebViewDATOS = (WebView) findViewById(R.id.webViewQR);
		 myWebViewDATOS.getSettings().setJavaScriptEnabled(true);
	        
		 
	        /* Prevent WebView from Opening the Browser */
		 myWebViewDATOS.setWebViewClient(new InsideWebViewClient());
		 myWebViewDATOS.loadUrl(bundle.getString("contenido"));
			
	    }
	    
	    /* Class that prevents opening the Browser */
	    private class InsideWebViewClient extends WebViewClient {
	        @Override
	        public boolean shouldOverrideUrlLoading(WebView view, String url) {
	            view.loadUrl(url);
	            return true;
	        }
	    }
Con esto funciona a la perfeccion,espero que le sirva a alguien.Sencillo y eficaz jeje

Última edición por Napster87 Día 10/03/14 a las 12:01:33.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 23:12:30 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /