2011-03-09 15 views
9

En mi aplicación, necesito abrir la página del banco para que el usuario pueda pagar. Al leer la documentación de Android veo que debería usar un ACTION_VIEW (y no un WebView) para lograr esto.Al iniciar una actividad de ACTION_VIEW para abrir el navegador, ¿cómo regreso a mi aplicación?

Uri uri = Uri.parse("http://www.example.com"); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(intent); 

Mi pregunta es: Después de que el usuario se realiza con el pago, ¿Cómo puedo conseguir de nuevo a la aplicación?

quiero decir, me gustaría hacer algo como

startActivityForResult(intent, RESULT_CODE); 

para abrir el sitio del banco y, a continuación, volver a la aplicación cuando se realiza el usuario, utilizando el

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

devolución de llamada para manejar el resultado del pago.

¿Y estoy siguiendo el camino correcto? ¿O hay alguna otra forma de lograr esto?

Respuesta

5

¿Cómo sabrá el navegador que el usuario ha terminado con la página del banco? No tiene forma de saber eso.

Además, el navegador no reacciona a startActivityForResult() al establecer el resultado y luego finish().

Por lo tanto, no puede usar el navegador de Android para realizar esta tarea.

La única forma posible sería iniciar WebView y detectar cuando el usuario finaliza, detectando cierta url que (supuestamente) se muestra cuando el usuario finaliza la tarea bancaria.

-1

Sólo hay que poner un argumento ResultCode de su método startActivityForResult, algo así como =this.startActivityForResult(intent, PAYMENT_ACCEPTED)

Se le devolverá como resultCode cuando termine su segunda actividad.

+0

Ahora esto, pero el problema es "¿cómo puedo detener la segunda actividad cuando se realiza el pago"? – Abramodj

+0

Puede agregar un Paquete de Extras a su Intento de Segunda Actividad ... – papachan

+0

Papachan, sé que esta es una respuesta antigua, pero ¿qué quiere decir con agregar Paquete Extra? ¿Cómo hará esto que tu navegador vuelva a la actividad? – Silver

5

En realidad, puede volver a su actividad de llamada adoptando un enfoque diferente. Si la página web que está llamando es manejada por usted o le permite asignar una devolución de llamada cuando el usuario finaliza el procesamiento del domo, puede establecer esa devolución de llamada a un URI y asignar ese URI a su actividad de llamada, si el modo de inicio de actividad es SingleTask, entonces podrás reanudar tu actividad.

Lo único que no he resuelto es que no sé cómo eliminar el navegador de la pila una vez que vuelve a su actividad de llamada. Quiero lograr esto porque una vez que dejas tu aplicación, Android muestra la actividad del navegador al frente, lo que obliga al usuario a terminarlo solo.

+1

Puede iniciar la aplicación del navegador web con: intent.setFlags (Intent.FLAG_ACTIVITY_NO_HISTORY); para evitar que se agregue a la pila posterior. – Spoonface

Cuestiones relacionadas