J'ai deux exigences pour mon dernier projet:Une application iPhone peut-elle se relancer lorsqu'elle est terminée?
- Lorsque l'application lance pour la première fois, il doit afficher le dispositif dialer natif et puis de vérifier callDidConnected en arrière-plan.
- une fois que le callDidConnected est vrai application devrait se lancer.
Ici j'ai essayé la logique suivante:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//i am dialing to a IVR from the native dialer
if (/* A check to validate wether to call or not */)
{
NSLog(@"Dialing");
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:"]];
// A loop check wether the call get connected
while (!callDidConnected){
callDidConnected = // doing a check with server
}
// if call get connected then launching my application
if (callDidConnected){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"MyApp:"]];
}
}
else
{
// normal app
}
}
- (void) applicationWillTerminate:(UIApplication *)application
{
}
- Je me suis inscrit l'application avec l'URL MyApp.
J'ai testé ce code sur un simulateur (sur SDK 3.0/3.2) en ouvrant une autre application (http essayé au lieu de tel protocole). La vérification s'exécute en arrière-plan pendant que d'autres applications natives (safari) s'exécutent au premier plan.
"Alors, ça a l'air un peu bizarre" disent les gars d'Apple.
Quelqu'un peut-il m'aider à trouver si je peux utiliser ce code dans mon travail, et sera-t-il acceptable par Apple Store.
Vous ne savez pas exactement ce que vous essayez de faire ... Vous souhaitez ouvrir l'application lorsqu'elle est fermée? -> boucle infinie. Alors comment quitter l'application? – Macmade
J'espère sincèrement qu'Apple restreindra ce genre de comportement et s'ils ne le font pas, je suis sûr que cela ne prendra pas trop de temps avant qu'ils le fassent. –