Cómo utilizar iOS Accesibilidad

Estoy desarrollando una aplicación para el iPhone que utiliza la red. El iPhone comunicarse con el servidor a través de la petición HTTP y debe trabajar en WiFi y 3G.

Yo actualmente uso NSURLConnection initWithRequest para enviar las solicitudes asincrónicas a mi servidor y obtener respuestas (pero pronto voy a pasar a trabajar con ASIHTTPRequest biblioteca)

Entendí que con este tipo de apps(aplicaciones que requiere conexión a internet) debería (¿debe?) el uso de Accesibilidad.

Después de buscar en la web y mirar de Apple, Accesibilidad de código de ejemplo todavía no entiendo algunas cosas básicas:

¿Cuál es la finalidad principal de la Accesibilidad?

De apple ejemplo, detectar problemas de red con el host, WiFi y 3G y presentar al usuario con un mensaje apropiado.

Es este el principal objetivo de la Accesibilidad, para mostrar al usuario un mensaje?
O tengo que usar para otros más prácticos de los escenarios? Por ejemplo, si NSURLConnaction solicitud ha fallado qué necesito para usar la Accesibilidad de alguna manera de volver a enviar la solicitud?

¿Cuál es el uso adecuado de Accesibilidad?

Es común el uso de sólo uno ejemplo a la hora de inicio de la aplicación y, a continuación, escuchar a los cambios en la red? O puedo comprobar yo mismo la accesibilidad de estado antes de cada solicitud de red?

Es suficiente utilizar reachabilityWithHostName o necesito también reachabilityForLocalWiFi y reachabilityForInternetConnection?

Una cosa más, entendí que apple puede rechazar aplicaciones que usan la red y no uso de Accesibilidad.

¿Cuáles son los «debe» ¿los métodos que debo implementar?

Será suficiente para el acaba de avisar al usuario de que actualmente no hay internet?

InformationsquelleAutor Eyal | 2012-06-24

3 Kommentare

  1. 47

    Reachability es una red de ayudante de clase de utilidad, se usa para obtener diversas informaciones sobre el estado de la conexión

    ¿Cuál es la finalidad principal de la Accesibilidad?

    • Accesibilidad se utiliza para consultar el estado de la red
    • y registrar a sus oyentes a ser informado cuando la conectividad de los cambios

    Es este el propósito principal de la Accesibilidad, para mostrar al usuario un mensaje?

    No, por supuesto, su principal uso es para probar si hay conexión a internet, o para recibir una notificación si los cambios de conectividad

    Por ejemplo, si NSURLConnaction solicitud ha fallado necesito para usar
    La accesibilidad de alguna manera de volver a enviar la solicitud?

    Sí que se podría utilizar, por ejemplo lo que hago normalmente en mi proyecto es salvar a todos los que la solicitud de que se ha hecho a un servidor remoto, digamos que quiero descargar de 10 archivos,

    Cuando cualquier archivo falla el proceso de descarga debido a que no hay conexión a internet, puedo guardarlos en un array de descargas fallidas,

    Cuando accesibilidad me informa de que la conexión a internet ha sido restaurado, me iterar a través de esta matriz y comenzar el proceso de descarga de nuevo

    ¿Cuál es el uso adecuado de Accesibilidad?

    Depende, en sus patrones y necesidades.

    Es común el uso de sólo un ejemplo a la hora de inicio de la aplicación y, a continuación, escuchar
    a los cambios en la red?

    Sí, eso es lo que yo hago, en mis proyectos solo tengo 1 ejemplo de un gestor de descarga de la clase, y esta clase tiene el único vivo ejemplo de la Accesibilidad de la

    O puedo comprobar yo mismo la accesibilidad de estado antes de cada red
    solicitud?

    Usted puede hacer eso sin tener varias instancias de la Accesibilidad de las clases, lo que hago normalmente, es tener un método dentro de mi gestor de descarga que me dice que el uso de la Accesibilidad de si hay o no conexión.

    Es suficiente para el uso reachabilityWithHostName o necesito también
    reachabilityForLocalWiFi y reachabilityForInternetConnection?

    No estoy seguro acerca de esto, pero lo que hago normalmente es para probar la conectividad en todos los medios, yo no diferenciar entre 3g o wi-fi, sin embargo, hay alguna aplicación que esta info (wifi o 3g) podría ser útil

    • Gracias por su respuesta, puede u por favor marque la casilla «una cosa más» que he añadido a la pregunta
    • Estoy completamente inconsciente de esto, tengo 5+ aplicaciones en la appstore, todos ellos de uso, Accesibilidad, he utilizado la accesibilidad como he descrito más arriba en la respuesta, así que no sé acerca de lo que debe ser implementado, yo normalmente implementar lo que necesito
    • Usted dijo que uno de los principales fines de la accesibilidad es «para registrar a sus oyentes a ser informado cuando la conectividad de los cambios», pero no da de devolución de llamada de todos los tiempos, de intentar cambiar los routers y verificación).
    • Un momento importante. Usted no debe tomar una lógica que envía (o no) solicitud basada en la Accesibilidad, porque se puede dar falsos positivos y falsos negativos en los resultados. Por lo tanto responder «O puedo comprobar yo mismo la accesibilidad de estado antes de cada solicitud de red?»: Sí, se puede comprobar que la de informar al usuario sobre el resultado esperado, pero usted debe tratar de enviar la solicitud de todos modos.
  2. 12

    La accesibilidad de la es un ejemplo de un proyecto que Apple ha hecho. La gente usa esto como una API a través de la SystemConfiguration marco. Como ya hemos visto, existen métodos para comprobar si un host es alcanzable y así sucesivamente.

    La forma en que uso la Reachabilty proyecto es que he hecho una clase con un método de clase que devuelve un valor booleano si el host estoy pidiendo los datos de está disponible. Si es que el método devuelve YES y si no, devuelve NO (obviamente).

    Ahora, en la aplicación donde estoy haciendo uso de las conexiones que necesita/debe comprobar si es posible iniciar una conexión como la documentación de Apple de estados unidos. Tengo una simple if y, a continuación, mostrar un adecuado mensaje de alerta de que la solicitud no puede ser completado en el momento.

    No hay requisitos que automáticamente debe intentarlo de nuevo si la solicitud no puede ser llevado a cabo el primer tiempo. El propósito principal de esto es para mantener a su aplicación, lejos de derrumbarse, y al mismo tiempo dar al usuario un mensaje de que no se podía hacer.

    Yo no uso las notificaciones de mí mismo, sino que es porque no estoy interesado en el seguimiento de si o no la conexión puede ser llevado a cabo. Esto es algo que tendrá que decidir por las necesidades de su aplicación.

    Usted no está obligado a utilizar todos los métodos de la Reachablitiy clase, es suficiente para el uso de uno de ellos. Está documentado lo que los diferentes métodos de oferta y cuando se ción para ser utilizado en el archivo de encabezado.

    Recuerde incluir el SystemConfiguration marco.

    • Gracias por su respuesta, cuando la comprobación de si el host está disponible antes de cada solicitud de red, esto agregar una sobrecarga para cada solicitud?
    • Sí, pero que debe ser mínimo. No he notado ninguna notable sobrecarga de hacerlo, sin embargo. A las preguntas que añadió me respondió, ya lo creo. Siéntase libre de preguntar si algo no está claro aún 🙂
    • Así que dime si lo he entendido a la derecha, para obtener el mismo resultado pero con las notificaciones, voy a seguir algunos boolean global «HostIsAvailable», este booleano será actualizado cuando voy por la Accesibilidad de las notificaciones, entonces, antes de cada solicitud de red voy a comprobar si es SÍ, si no voy a mostrar al usuario un mensaje de alerta.
    • Sí, esa es una posible solución. Usted tendrá que registrar delegado de la aplicación como el receptor de las notificaciones y la actualización de la variable(s) cuando una de las notificaciones que se recibe. Entonces, en su opinión, los controladores que usted podría hacer esto MyAppDelegate* myAppDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate] para acceder a sus variables.
  3. 0

    Accesibilidad hace una estimación mejor de si el internet es accesible o no. Le dice si usted tiene acceso a través de WiFi, o si usted tiene acceso sólo a través de los Datos Móviles. No hay ninguna garantía de que es correcta. Si se dice que usted tiene una conexión wi-fi, la conexión se puede perder un segundo más tarde. La única manera de saber si el acceso a una dirección URL funcionará o no, es hacer que el acceso y ver qué pasa. Hay situaciones donde el acceso funcionará cuando la Accesibilidad dice que no y viceversa.

    Aquí es lo que yo uso Reachibility para: Después de las descargas de error porque no había conexión a internet, voy a empezar a reintentar cuando Accesibilidad detecta un cambio (en realidad un par de segundos más tarde; URL de acceso menudo falla inmediatamente después de la Accesibilidad dice WiFi vuelve). Después de las descargas fallidas donde los Datos fue rechazada, comprobar si los Datos Móviles está disponible, a continuación, pedir al usuario para permitir el uso de Datos Móviles.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea