Foro Oficial de Android

[sC+].Kmilocho

Lanero Reconocido
24 May 2009
1,915
Hola a todos, tengo un problema, trataré de explicarlo de la mejor manera:

Existe una app que crea un servidor y se puede acceder a su servicio a través de una url. El Index.html ofrece un link de logueo el cual muestra un cuadro de diálogo pidiendo un user y pass, luego de loguearse se redirecciona a phone.html, hasta ahí perfecto. Esto pasa desde un navegador de escritorio o desde un navegador en un celular.

Este es el comportamiento anterior descrito.


En una app nativa que contiene un WebView la url que le indico que cargue apunta al Index.html, la página se carga, puedo dar clic en el link de logueo, pero no aparece el cuadro de diálogo pidiendo los datos, la pantalla se queda en blanco (pasa en las otras pruebas cuando el logueo es incorrecto). He intentado modificar la url del WebView incluyendo los datos de logueo de la siguiente forma http://user:pass@ip/phone.html, esto funciona en los navegadores pero no en el WebView. Javascript lo activé con la siguiente sentencia:

webSettings.setJavaScriptEnabled(true);

Agradezco cualquier ayuda para lograr el logueo desde el WebView, muchas gracias.
 
Última edición:

Jcortiz0

Lanero Regular
20 Abr 2014
43
Alguien sabe para cuando estará disponible Android 4.4.2 KitKat en los operadores de telefonía celular del país?
 

BY castel

Lanero Reconocido
29 Jul 2005
7,379
Alguien sabe para cuando estará disponible Android 4.4.2 KitKat en los operadores de telefonía celular del país?

Depende del fabricante y modelo celular por ejemplo Samsung dijo que no actualizaba los S3 del resto la mayoria digase Note 2 S4 normal mini y demas de esa gama.
 

BY castel

Lanero Reconocido
29 Jul 2005
7,379
Me faltó decir específicamente Samsung (S4) que sé que ya está en muchos países.

Las del note 2 cuando salen en francia o paises nordicos para colombia se demoran unos 4 a 6 meses a mi me ha pasado de todas maneras esas bases de rom son mejor que las colombianas.
 

DominicFX

Lanero Reconocido
9 Jun 2006
1,976
Me faltó decir específicamente Samsung (S4) que sé que ya está en muchos países.

Las principales variantes del S4 ya todas tienen 4.4.2 desde hace rato. Le tocaría buscar una libre de operador o de algun operador que ya tenga la actualización. Si prefiere esperar a que llegue por OTA mejor sientese a esperar con paciencia, en especial si es de Claro y nunca lo ha flasheado por otra diferente. Hay tutoriales en varias paginas de como hacerlo.

Si no sabe hacerlo o le da miedo entonces le figuró buscarse alguien experimentado en el tema para que le haga eso.
 

Saruman

Lanero Reconocido
18 Jul 2002
427
Hola a todos, tengo un problema, trataré de explicarlo de la mejor manera:

Existe una app que crea un servidor y se puede acceder a su servicio a través de una url. El Index.html ofrece un link de logueo el cual muestra un cuadro de diálogo pidiendo un user y pass, luego de loguearse se redirecciona a phone.html, hasta ahí perfecto. Esto pasa desde un navegador de escritorio o desde un navegador en un celular.

Este es el comportamiento anterior descrito.


En una app nativa que contiene un WebView la url que le indico que cargue apunta al Index.html, la página se carga, puedo dar clic en el link de logueo, pero no aparece el cuadro de diálogo pidiendo los datos, la pantalla se queda en blanco (pasa en las otras pruebas cuando el logueo es incorrecto). He intentado modificar la url del WebView incluyendo los datos de logueo de la siguiente forma http://user:pass@ip/phone.html, esto funciona en los navegadores pero no en el WebView. Javascript lo activé con la siguiente sentencia:

webSettings.setJavaScriptEnabled(true);

Agradezco cualquier ayuda para lograr el logueo desde el WebView, muchas gracias.

Sé q la pregunta es de hace casi una semana, pero hoy me dio por mirar en q va el foro de desarrollo.

Acerca de tu problema, es debido a q el WebView no implementa la ventana de autenticacion, es responsabilidad del usuario, y hasta tiene sentido: Cuando un navegador encuentra una peticion de autenticacion (401 Unauthorized), muestra el tipico dialogo de "Authentication Required" el cual es NATIVO, no javascript, por lo tanto setJavaScriptEnabled(true) no hace nada. Te toca capturar la peticion de autenticacion y autenticar usando WebView.setHttpAuthUsernamePassword():

Código:
public class MainActivity extends ActionBarActivity
{

    protected WebView webView;
    protected String host;
    protected String realm;
    protected String username = "username";
    protected String password = "password";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webView = (WebView) findViewById(R.id.webview);

        // Activar javascript
        webView.getSettings().setJavaScriptEnabled(true);
        // La siguiente opcion es para redirecciones window.location la cuales
        // no son gestionadas en shouldOverrideUrlLoading()
        webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

        webView.loadUrl("http://192.168.1.4:9091");

        webView.setWebViewClient(new WebViewClient()
        {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url)
            {
                return false; // Permite al webview cargar la pagina
            }

            @Override
            public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm)
            {
                // Puedes pedir el login y password aqui con un Dialog
                MainActivity.this.host = host;
                MainActivity.this.realm = realm;
                handler.proceed(username, password);

            }

            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
            {
                if (errorCode == 401)
                {
                    // O tambien puedes autenticar aqui, pero necesitas previamente el host y el realm
                    webView.setHttpAuthUsernamePassword(host, realm, username, password);
                }
            }
        });

    }
}

Si quieres, puedes implementar una ventana de dialogo personalizada y mostrarla en WebViewClient.onReceivedHttpAuthRequest(), pero eso esta fuera del ambito de la pregunta inicial.
 
Última edición:
  • Me gusta
Reacciones: [sC+].Kmilocho

Saruman

Lanero Reconocido
18 Jul 2002
427
Desempolvo el hilo con una buena noticia: Ya se pueden registrar cuentas Merchant en Google Wallet

We're writing to let you know that we will be introducing Google Wallet Merchant registration availability for Google Play Developers in additional countries. Beginning June 26th 2014, developers from Belarus, Colombia, Chile, Costa Rica, Egypt, Kazakhstan, Kuwait, Nigeria and United Arab Emirates will be able to sign up as merchants through the Google Play Developer Console.

Es decir, ya podemos monetizar apps en Google Play!!!!

Mas info: https://support.google.com/googleplay/android-developer/table/3539140
 
  • Me gusta
Reacciones: AnBoCa y KERBEROS

[sC+].Kmilocho

Lanero Reconocido
24 May 2009
1,915
Sé q la pregunta es de hace casi una semana, pero hoy me dio por mirar en q va el foro de desarrollo.

Acerca de tu problema, es debido a q el WebView no implementa la ventana de autenticacion, es responsabilidad del usuario, y hasta tiene sentido: Cuando un navegador encuentra una peticion de autenticacion (401 Unauthorized), muestra el tipico dialogo de "Authentication Required" el cual es NATIVO, no javascript, por lo tanto setJavaScriptEnabled(true) no hace nada. Te toca capturar la peticion de autenticacion y autenticar usando WebView.setHttpAuthUsernamePassword():

Código:
public class MainActivity extends ActionBarActivity
{

    protected WebView webView;
    protected String host;
    protected String realm;
    protected String username = "username";
    protected String password = "password";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webView = (WebView) findViewById(R.id.webview);

        // Activar javascript
        webView.getSettings().setJavaScriptEnabled(true);
        // La siguiente opcion es para redirecciones window.location la cuales
        // no son gestionadas en shouldOverrideUrlLoading()
        webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

        webView.loadUrl("http://192.168.1.4:9091");

        webView.setWebViewClient(new WebViewClient()
        {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url)
            {
                return false; // Permite al webview cargar la pagina
            }

            @Override
            public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm)
            {
                // Puedes pedir el login y password aqui con un Dialog
                MainActivity.this.host = host;
                MainActivity.this.realm = realm;
                handler.proceed(username, password);

            }

            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
            {
                if (errorCode == 401)
                {
                    // O tambien puedes autenticar aqui, pero necesitas previamente el host y el realm
                    webView.setHttpAuthUsernamePassword(host, realm, username, password);
                }
            }
        });

    }
}

Si quieres, puedes implementar una ventana de dialogo personalizada y mostrarla en WebViewClient.onReceivedHttpAuthRequest(), pero eso esta fuera del ambito de la pregunta inicial.

Muchas gracias por tomarse el tiempo se responderme, y me disculpo por la demora. Android 4.4 implementó varias mejoras en el WebView, algo así como hacerlo más similar a un navegador. Así que la función de logueo al menos pasando los datos de logueo de la siguiente forma http://user:pass@ip/phone.html ya funciona.
 

kP-MaqP

Lanero Líder
5 Feb 2004
10,010
Veo que el forito no se ha movido mucho desde que se creó, pero traigo una pregunta muy sencilla.
Quiero crear un app bastante simple (una especie de portafolio de productos) para uso interno dentro mi empresa. Cada página (producto) con una foto pequeña y 6 campos para describirlo.
Utilicé un par de páginas en la cuales crear la app era realmente simple, pero el resultado es un bombardeo de publicidad que no veo que haya forma de evitarlos utilizando esas páginas.
Existe algun software bastante simple, tipo drag and drop que me permita hacer la app en mi pc (o MAC) tan fácil como en la página? para evitarme esa cantidad de publicidad y genere el apk para poder colgarlo en una intranet corporativa.

Saludos
 

AnBoCa

Lanero Reconocido
17 Feb 2006
339
Veo que el forito no se ha movido mucho desde que se creó, pero traigo una pregunta muy sencilla.
Quiero crear un app bastante simple (una especie de portafolio de productos) para uso interno dentro mi empresa. Cada página (producto) con una foto pequeña y 6 campos para describirlo.
Utilicé un par de páginas en la cuales crear la app era realmente simple, pero el resultado es un bombardeo de publicidad que no veo que haya forma de evitarlos utilizando esas páginas.
Existe algun software bastante simple, tipo drag and drop que me permita hacer la app en mi pc (o MAC) tan fácil como en la página? para evitarme esa cantidad de publicidad y genere el apk para poder colgarlo en una intranet corporativa.

Saludos
No se si sea paso a paso pero phonegap permite crear aplicaciones multiplataforma con html, css y javascript.
 
  • Me gusta
Reacciones: kP-MaqP

Saruman

Lanero Reconocido
18 Jul 2002
427
Respondiendo a la pregunta, la unica gratis que conozco que valdria la pena mirar es MIT App Inventor (basado en el antiguo App Inventor de Google) pero no sé que tan estable sea para generar aplicaciones con calidad de produccion.

Hay varias alternativas de pago, seria cuestion de ver reviews y videos de cada uno, hasta ahi es lo que sé.

De resto, no creo que haya una solucion perfecta 'gratis'... gratis no hay nada en esta vida, ya depende de que tanto estés dispuesto a invertir para tomar atajos.

Nunca he sido amigo de este tipo de soluciones: aunque ofrecen inicialmente la solucion perfecta para crear aplicaciones simples sin mucho esfuerzo ni conocimiento, a la larga solo trae problemas de mantenimiento y escalabilidad.
Ahora puede que la aplicacion sea 'simple', pero eso es subestimar los requerimientos. Con seguridad, con el tiempo apareceran nuevas necesidades... que si se necesita mostrar otros recursos aparte de una simple imagen (como un carrusel, videos, mapas, etc), que si necesita soporte para redes sociales, que hace falta un backend para gestionar contenidos, que si debe enviar notificaciones de nuevos productos, que si necesita soporte de librerias de terceros, etc

Partir del hecho que una app es simple, que no va a crecer, y utilizar herramientas que al igual que facilitan el desarrollo tambien lo limitan, es una receta para el desastre.

No estoy diciendo que tienes que empezar a estudiar android (... mmhhh, bueno, si, yo soy de los que cree que todo el mundo deberia saber programar al menos un poco), sino que podrias mirar otras opciones: si no cuentas con gente/recursos para el desarrollo, por qué no iniciar con un sitio web? Una app solo para android reduce el publico objetivo; y si despues te piden una app para iOS? (quien sabe, puede que hasta para windows phone!). Si es tan simple como dices, publica una pagina para mobile y desktop, asi estas apuntando a todo tipo de publico y es muy facil de hacer (google sites, wordpress, facebook, etc).
No lo tomes a mal, es solo una opinion ;)
 
  • Me gusta
Reacciones: kP-MaqP

Jahaira Escorcia

Lanero Regular
10 Jul 2014
3
A mi android me parece un excelente sistema operativo, puedo descargar demasiadas app y lo mejor es que es gratis, y sin ningún peligro para mi celular o tableta
 

jarias.android

Lanero Regular
10 Nov 2014
3
  • Me gusta
Reacciones: Kurai y Caruro

Kurai

Lanero Reconocido
19 Sep 2006
2,778
Yo recientemente publiqué en Google Play mi primera app (Hecha en Java con Android Studio):
https://play.google.com/store/apps/details?id=com.javierarias.ubika

Cualquier duda o sugerencia me cuentan :)

Está chevere la app, la estuve probando en Cali y funciona muy bien, gráficamente se ve muy bonita también.

Voy a empezar a haver una app para domicilios de una empresa que tiene 10 puntos de venta en cali, la idea es que por geolocalización el pedido que hace la persona llegue al punto de venta más cercano, qué me recomendarías para ubicación de la persona?

Veo que en tu app usaste el API de Foursquare, me serviría para lo mismo?
 
  • Me gusta
Reacciones: Likibuay y TaaDow

Kurai

Lanero Reconocido
19 Sep 2006
2,778
Muchachos, un consejo por favor.

¿Si tuvieran que hacer una App sencilla para Android y iOS y sin mucho tiempo, que sistema recomendarían?

He escuchado de esas plataformas en que uno desarrolla y sale listo para Ambas plataformas.
 

Likibuay

Lanero Reconocido
1 Sep 2004
3,645
Estoy ahora con Rad Builder EX8 antes solo era c++ (builder 4 y 6), pero ahora esta versión puedes desarrollar en Android ademas de IOS, MAC, Win32, Win64.
interesante herramienta.
 
  • Me gusta
Reacciones: Kurai