7
votes

UIAPPLICATION OpenURL Fond

Dans mon application iOS 4, j'ai besoin d'ouvrir une URL à partir de l'arrière-plan, à un moment spécifié de l'utilisateur. Cependant, pour une raison quelconque, je ne peux pas lancer une URL de l'arrière-plan pour une raison quelconque. Voici mon code pour ouvrir une URL:

if (![[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.stackoverflow.com"]])
{
     // the URL wasn't opened. we will ignore this for now.
}


0 commentaires

3 Réponses :


3
votes

Ceci n'est pas pris en charge par iOS. Par la section correspondante du Guide de programmation iOS d'Apple :

Support pour certains types de fond L'exécution doit être déclarée à l'avance par l'application qui les utilise [Via] Un tableau contenant un ou plus de chaînes avec ce qui suit Valeurs:

  • audio - l'application joue un contenu audible à l'utilisateur pendant que le fond.
  • Emplacement - L'application conserve les utilisateurs informés de leur emplacement, même en courant à l'arrière-plan.
  • VoIP - L'application permet à l'utilisateur de faire un téléphone Appels utilisant une connexion Internet.

    ...

    En plus des touches précédentes, iOS fournit deux autres moyens de travailler dans le fond:

    • Les applications peuvent demander au système de plus de temps pour compléter une tâche donnée.
    • Les applications peuvent planifier des notifications locales à livrer à un Temps prédéterminé.

      Votre utilisation ne répond pas à aucun des types de multitâche autorisés.


0 commentaires

4
votes

Les appels Uikit ne peuvent s'exécuter que sur le fil principal. Je pense que parce que cela fonctionne sur un fil d'arrière-plan, Safari visit toujours l'URL, mais votre application est toujours active. Essayez d'ouvrir Safari peu de temps après et voyez s'il chargeait l'URL.

La solution serait de mettre ceci sur le thread principal et laissez ainsi votre application à l'heure à laquelle le code est exécuté. Cela ne ressemble pas à ce que vous voulez que ce soit, désolé. Si vous souhaitez visiter l'URL de dans votre application, vous pouvez présenter une uiWebView.


0 commentaires

5
votes

Je crois que je l'ai trouvé (ne fonctionne pas sur le simulateur, car il passe des commandes au terminal sur le Mac, car il n'y a pas de ligne de commande pour le simulateur). Utilisez ceci: xxx

qui passera la commande uiopen (trouvé via jailbreak) sur le périphérique, le forçant à ouvrir cette URL. J'espère que cela aide les autres dans ma position.


1 commentaires

@Adruzh oui vous faites, cette commande ne fonctionne pas sur un appareil unjailroken :(