2010-11-17 26 views
1

Je suis très novice dans le développement iOS. L'application dont j'ai besoin est très simple: il suffit d'ouvrir un navigateur Web et d'accéder à une URL spécifique lorsque mon application est lancée. Ainsi, dans le fichier délégué, dans didFinishLaunchingWithOptions, j'ajoute une ligne de code:iOS Comment quitter l'application actuelle après avoir utilisé UIApplication openURL pour lancer un navigateur

[[UIApplication sharedApplication] openURL: [NSURL URLWithString: @ "http://www.google.com"]];

L'application peut ouvrir safari et aller à google, cependant quand j'appuie sur le bouton d'accueil et essayez d'ouvrir l'application à nouveau, j'ai eu un écran d'écriture. Je sais que je dois libérer la ressource après avoir appelé le navigateur, mais je ne sais pas comment le faire.

Merci beaucoup.

Ray

+0

Vous ne vous attendez pas à ce que Apple approuve cela, n'est-ce pas? – ceejayoz

+0

Je n'ai aucun problème avec cela dans le simulateur (iOS 4.2 GM). –

+0

@ceejayoz: Apple n'approuvera certainement pas ce comportement, mais cela peut être une pratique ou un usage personnel/interne. –

Répondre

2

Si votre seul but est de lancer un site Web, il n'y a pas besoin d'une application (dont Apple n'approuverait pas de toute façon). En ajoutant simplement une image apple-touch-icon.png à la racine de votre site, n'importe qui peut ajouter le site à son écran d'accueil et le faire ressembler à une application.

http://www.apple.com/webapps/whatarewebapps.html

http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html

+0

Je ne pense pas que ce soit son seul but. Sa demande peut nécessiter un enregistrement avant utilisation, c'est pourquoi j'ai suggéré dans les commentaires d'alerter l'utilisateur qu'ils seront redirigés vers une page Web. –

4

Comme d'autres ont répondu, votre application ne sera probablement pas approuvé si cela est que votre application va faire, mais pour répondre à votre question:

Votre problème est que l'application est multitâche sur iOS 4, et -[UIApplicationDelegate didFinishLaunchingWithOptions:] ne reçoit pas à nouveau lorsque l'application revient en arrière-plan de l'arrière-plan. (Pour en savoir plus sur la façon dont les méthodes de délégation d'application fonctionnent avec le mode multitâche here.)

Si cela est tout ce que votre application va faire, alors la solution la plus simple est simplement opt out of multitasking. Si vous ne vous désabonnez pas, vous devez mettre cette même logique 'openURL' dans l'une des méthodes de délégué d'application qui est appelée lorsque le multitâche est utilisé, par exemple -[UIApplicationDelegate applicationDidBecomeActive:].