web-dev-qa-db-fra.com

Comment ouvrir une page Twitter dans une application Twitter à partir de mon application iPhone?

La page que je veux ouvrir à l'aide de l'application Twitter:

https://Twitter.com/#!/PAGE

Pour ouvrir l'application Twitter, j'utilise le code suivant:

NSURL *urlApp = [NSURL URLWithString: [NSString stringWithFormat:@"%@", @"Twitter://https://Twitter.com/#!/PAGE"]];
[[UIApplication sharedApplication] openURL:urlApp];

Mais ce code ne semble pas fonctionner comme prévu, seule l'application Twitter a été lancée sans la page que je souhaite afficher.

21
Alex

Vous recherchez l'URL suivante:

Twitter:///user?screen_name=PAGE

Notez que Twitter n'est pas installé sur tous les appareils. Vous devriez vérifier le résultat de la méthode openURL. Si cela échoue, ouvrez la page dans Safari avec une URL normale.

39
murat

Je sais que la réponse à cette question est assez tardive et je suis d’accord pour dire que la réponse de Murat est tout à fait correcte. Ajoutez simplement un chèque comme suit:

NSURL *urlApp = [NSURL URLWithString: [NSString stringWithFormat:@"%@", @"Twitter:///user?screen_name=PAGE]];

if ([[UIApplication sharedApplication] canOpenURL:urlApp]){
        [[UIApplication sharedApplication] openURL:urlApp];
    }

J'espère que ça aidera quelqu'un. À votre santé!! :)

14
Apple_iOS0304

Le code suivant ouvre la page Twitter sur l'application Twitter si elle est déjà installée, sinon ouvre Twitter sur safari:

NSURL *twitterURL = [NSURL URLWithString:@"Twitter://user?screen_name=username"];
if ([[UIApplication sharedApplication] canOpenURL:twitterURL])
    [[UIApplication sharedApplication] openURL:twitterURL];
else
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.Twitter.com/username"]];

N'oubliez pas de remplacer "nom d'utilisateur" par votre nom.

11
Basem Saadawy

@Alexey: Si vous voulez juste savoir comment lancer Twitter depuis votre application, faites ceci:

NSURL *urlApp = [NSURL URLWithString: [NSString stringWithFormat:@"%@", @"Twitter://"]];
   if ([[UIApplication sharedApplication] canOpenURL:urlApp]){
        [[UIApplication sharedApplication] openURL:urlApp];
   }else{
        UIAlertView *appMissingAlertView = [[UIAlertView alloc] initWithTitle:@"Twitter App Not Installed!" message:@"Please install the Twitter App on your iPhone." delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Ok",nil];
        [appMissingAlertView show];
        [appMissingAlertView release];
    }
2
Apple_iOS0304

C'est le code complet requis dans Swift. J'utilise Swift 4 mais je pense que c'est la même chose pour Swift 3.

let Username =  "YOUR_USERNAME_HERE" 
let appURL = NSURL(string: "Twitter:///user?screen_name=\(Username)")!
let webURL = NSURL(string: "https://Twitter.com/\(Username)")!
let application = UIApplication.shared
if application.canOpenURL(appURL as URL) {
      application.open(appURL as URL)
    } else {
        // if Instagram app is not installed, open URL inside Safari
        application.open(webURL as URL)
    }

N'oubliez pas d'ajouter les clés Info nécessaires pour utiliser canOpenURL:  Info Keys Needed

1
Kokenge