Si l'application Facebook native est installée sur l'iPhone. Comment puis-je ouvrir un lien Facebook dans l'application Facebook native depuis mon application? Dans le cas d'une ouverture par Safari, le lien est le même que:
Je vous remercie.
Voici quelques exemples d'utilisation de l'application Facebook. Il y en a bien plus sur le lien source:
NSURL *url = [NSURL URLWithString:@"fb://profile/<id>"];
[[UIApplication sharedApplication] openURL:url];
fb: // profile - Ouvre une application Facebook au profil de l'utilisateur.
fb: // friends - Ouvre l'application Facebook dans la liste d'amis
fb: // notifications - Ouvrez l’application Facebook dans la liste des notifications (REMARQUE: il semble y avoir un bogue avec cette URL. La page Notifications s’ouvre. Il n’est toutefois pas possible de naviguer ailleurs dans l’application Facebook)
fb: // feed - Ouvre l'application Facebook dans le fil d'actualité
fb: // events - Ouvre l'application Facebook sur la page Events
fb: // request - Ouvre l'application Facebook dans la liste Requests.
fb: // notes - Ouvre l'application Facebook sur la page Notes
fb: // albums - Ouvre l'application Facebook dans la liste des albums photo
Si, avant d'ouvrir cette URL, vous souhaitez vérifier si l'utilisateur utilise l'application facebook, vous pouvez procéder comme suit (comme expliqué dans une autre réponse ci-dessous):
if ([[UIApplication sharedApplication] canOpenURL:nsurl]){
[[UIApplication sharedApplication] openURL:nsurl];
}
else {
//Open the url as usual
}
Utilisez simplement https://graph.facebook.com/(your_username ou le nom de la page) pour obtenir votre identifiant de page et après vous pourrez voir tout le contenu et votre ID
après dans votre IOS application, utilisez:
NSURL *url = [NSURL URLWithString:@"fb://profile/[your ID]"];
[[UIApplication sharedApplication] openURL:url];
Pour ajouter le commentaire de yonix comme réponse, l’ancienne URL fb://page/…
ne fonctionne plus. Apparemment, il a été remplacé par fb://profile/…
, même si une page n'est pas un profil.
Je l'ai fait dans MonoTouch avec la méthode suivante, je suis sûr qu'une approche basée sur Obj-C ne serait pas trop différente. J'ai utilisé cela dans une classe qui changeait parfois d'URL, c'est pourquoi je ne l'ai pas simplement insérée dans une instruction if/elseif.
NSString *myUrls = @"fb://profile/100000369031300|http://www.facebook.com/ytn3rd";
NSArray *urls = [myUrls componentsSeparatedByString:@"|"];
for (NSString *url in urls){
NSURL *nsurl = [NSURL URLWithString:url];
if ([[UIApplication sharedApplication] canOpenURL:nsurl]){
[[UIApplication sharedApplication] openURL:nsurl];
break;
}
}
La pause n'est pas toujours appelée avant que votre application ne passe à Safari/Facebook. Je suppose que votre programme s’arrêtera là et l’appellera lorsque vous y reviendrez.
Je sais que la question est ancienne, mais à l’appui des réponses ci-dessus, je souhaitais partager mon code de travail . Il suffit d’ajouter ces deux méthodes à la classe de votre choix.Le code vérifie si l’application Facebook est installée, sinon installée; l’URL est ouverte dans un navigateur.Et si des erreurs se produisent lors de la recherche de l'ID de profil, la page sera ouverte dans un navigateur. Il suffit de passer l’URL (exemple, http://www.facebook.com/AlibabaUS ) pour ouvrir openUrl: et cela fera toute la magie. J'espère que ça aide quelqu'un!.
NOTE: UrlUtils était la classe qui avait le code pour moi, vous devrez peut-être le changer pour quelque chose d'autre pour répondre à vos besoins.
+(void) openUrlInBrowser:(NSString *) url
{
if (url.length > 0) {
NSURL *linkUrl = [NSURL URLWithString:url];
[[UIApplication sharedApplication] openURL:linkUrl];
}
}
+(void) openUrl:(NSString *) urlString
{
//check if facebook app exists
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb://"]]) {
// Facebook app installed
NSArray *tokens = [urlString componentsSeparatedByString:@"/"];
NSString *profileName = [tokens lastObject];
//call graph api
NSURL *apiUrl = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@",profileName]];
NSData *apiResponse = [NSData dataWithContentsOfURL:apiUrl];
NSError *error = nil;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:apiResponse options:NSJSONReadingMutableContainers error:&error];
//check for parse error
if (error == nil) {
NSString *profileId = [jsonDict objectForKey:@"id"];
if (profileId.length > 0) {//make sure id key is actually available
NSURL *fbUrl = [NSURL URLWithString:[NSString stringWithFormat:@"fb://profile/%@",profileId]];
[[UIApplication sharedApplication] openURL:fbUrl];
}
else{
[UrlUtils openUrlInBrowser:urlString];
}
}
else{//parse error occured
[UrlUtils openUrlInBrowser:urlString];
}
}
else{//facebook app not installed
[UrlUtils openUrlInBrowser:urlString];
}
}
Swift 3
if let url = URL(string: "fb://profile/<id>") {
if #available(iOS 10, *) {
UIApplication.shared.open(url, options: [:],completionHandler: { (success) in
print("Open fb://profile/<id>: \(success)")
})
} else {
let success = UIApplication.shared.openURL(url)
print("Open fb://profile/<id>: \(success)")
}
}
Si l'application Facebook est connectée, la page sera ouverte lors de l'exécution du code suivant. Si l'application Facebook n'est pas connectée lors de l'exécution du code, l'utilisateur sera alors redirigé vers l'application Facebook pour se connecter. Une fois connecté, Facebook ne sera pas redirigé vers la page!
NSURL *fbNativeAppURL = [NSURL URLWithString:@"fb://page/yourPageIDHere"] [[UIApplication sharedApplication] openURL:fbNativeAppURL]
Cela ouvrira l'URL dans Safari:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com/comments.php?href=http://wombeta.jiffysoftware.com/ViewWOMPrint.aspx?WPID=317"]];
Pour l'iphone, vous pouvez lancer l'application Facebook si elle est installée à l'aide d'une URL commençant par fb: //
Plus d'informations peuvent être trouvées ici: http://iphonedevtools.com/?p=302 aussi ici: http://wiki.akosma.com/IPhone_URL_Schemes#Facebook
Volé du site ci-dessus:
fb://profile – Open Facebook app to the user’s profile
fb://friends – Open Facebook app to the friends list
fb://notifications – Open Facebook app to the notifications list (NOTE: there appears to be a bug with this URL. The Notifications page opens. However, it’s not possible to navigate to anywhere else in the Facebook app)
fb://feed – Open Facebook app to the News Feed
fb://events – Open Facebook app to the Events page
fb://requests – Open Facebook app to the Requests list
fb://notes - Open Facebook app to the Notes page
fb://albums – Open Facebook app to Photo Albums list
Pour lancer les URL ci-dessus:
NSURL *theURL = [NSURL URLWithString:@"fb://<insert function here>"];
[[UIApplication sharedApplication] openURL:theURL];