Pregunta

¿Cómo mediante programación reiniciar una aplicación para el iPhone en iOS?

Me parece que este camino http://writeitstudios.com/david/?p=54

Sin embargo, puede ser algo sencillo.

¿Fue útil?

Solución

La única manera que conozco para hacer esto no es lo ideal, pero funciona.

En primer lugar, su aplicación tiene que optar por no ejecución en segundo plano (multitarea) La aplicación tiene que dejar de fumar cuando salió, no se ejecute como una tarea de fondo. Esto se hace con el UIApplicationExitsOnSuspend clave plist.

En segundo lugar, sus necesidades de aplicaciones de registro de un esquema de URL personalizada que se puede utilizar para poner en marcha la aplicación.

En tercer lugar, se necesita una página web alojada en alguna parte que cuando se carga volverá a dirigir al esquema de URL personalizada de su aplicación.

En cuarto lugar, el usuario necesita una conexión a Internet activa.

Para salir y reiniciar, llame UIApplication openURL en tu página web alojada redireccionamiento. Su aplicación va a salir y Safari se iniciará y cargar la página. La página se redirigirá Safari para su esquema de URL personalizada, lo que provocó Safari para llamar internamente openURL, causando IOS para lanzar su aplicación.

Otros consejos

mi puesto que se ha vinculado a que se hace referencia a una aplicación Cocoa, no el IOS. En el IOS, puede salir de una aplicación (pero Apple no lo hace así) mediante el uso de exit(0); pero yo no recomiendo que. No se puede reiniciar aplicaciones para el iPhone sin embargo.

A menos que usted está desarrollando para dispositivos con jailbreak, Apple ni siquiera le permite terminar su aplicación mediante programación. Así que reiniciar el dispositivo está fuera de la cuestión.

La instancia AppDelegate tiene un método

(void)applicationDidBecomeActive:(UIApplication *)application
{
}

Aquí, usted puede poner la lógica de averiguar si la aplicación debe reiniciar o continuar haciendo lo que estaba haciendo. Por ejemplo, puede tener una variable BOOL appMustRestart que es false al principio, pero se desencadena como verdadero cuando algo sucede en su aplicación que desea que la próxima vez que un relanzamiento fresco.

if (appMustRestart)
{
    [self resetVars];  // call a method that resets all your vars to initial settings

    // INSERT CODE HERE TO TRANSFER FOCUS TO INITIAL VIEWCONTROLLER
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top