Abra un enlace de Facebook por la aplicación nativa de Facebook en iOS

Si la aplicación nativa de Facebook está instalada en el iPhone. ¿Cómo abro un enlace de Facebook en la aplicación nativa de Facebook desde mi aplicación? En el caso de la apertura de Safari, el enlace es el mismo que:

http://www.facebook.com/AlibabaUS

Gracias.

Aquí hay algunos esquemas que usa la aplicación de Facebook, hay mucho más en el enlace de origen:

Ejemplo

NSURL *url = [NSURL URLWithString:@"fb://profile/"]; [[UIApplication sharedApplication] openURL:url]; 

Esquemas

fb: // profile – Abre la aplicación de Facebook en el perfil del usuario

fb: // friends – Abre la aplicación de Facebook en la lista de amigos

fb: // notificaciones – Abra la aplicación de Facebook en la lista de notificaciones (NOTA: parece haber un error con esta URL. Se abre la página de Notificaciones. Sin embargo, no es posible navegar a ningún otro lado en la aplicación de Facebook)

fb: // feed – Abre la aplicación de Facebook para las noticias

fb: // events – Abre la aplicación de Facebook en la página de eventos

fb: // requests – Abre la aplicación de Facebook en la lista de Solicitudes

fb: // notes – Abre la aplicación de Facebook en la página de Notas

fb: // álbumes – Abra la aplicación de Facebook en la lista de álbumes de fotos

Si antes de abrir esta url desea verificar si el usuario abre la aplicación de Facebook, puede hacer lo siguiente (como se explica en otra respuesta a continuación):

 if ([[UIApplication sharedApplication] canOpenURL:nsurl]){ [[UIApplication sharedApplication] openURL:nsurl]; } else { //Open the url as usual } 

Fuente

http://wiki.akosma.com/IPhone_URL_Schemes#Facebook

Simplemente use https://graph.facebook.com/(su_nombre de usuario o nombre de la página) para obtener su ID de página y después de que pueda ver todos los datos de detención y su ID.

después en su aplicación IOS use:

  NSURL *url = [NSURL URLWithString:@"fb://profile/[your ID]"]; [[UIApplication sharedApplication] openURL:url]; 

Para agregar el comentario de yonix como respuesta, la antigua URL fb://page/… ya no funciona. Aparentemente fue reemplazado por fb://profile/… , aunque una página no es un perfil.

Hice esto en MonoTouch con el siguiente método, estoy seguro de que un enfoque puro basado en Obj-C no sería demasiado diferente. Usé esto dentro de una clase que tenía URL cambiantes a veces y es por eso que no lo puse en una statement 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; } } 

El descanso no siempre se invoca antes de que su aplicación cambie a Safari / Facebook. Supongo que su progtwig se detendrá allí y lo llamará cuando regrese a él.

Sé que la pregunta es antigua, pero para apoyar las respuestas anteriores, quería compartir mi código de trabajo. Simplemente agregue estos dos métodos a cualquier clase. El código comprueba si la aplicación de Facebook está instalada; si no está instalada, la url se abre en un navegador. Y si se produce algún error al intentar encontrar el profileId, la página se abrirá en un navegador. Simplemente pase la url (ejemplo, http://www.facebook.com/AlibabaUS ) para abrirUrl: y hará toda la magia. Espero que ayude a alguien !.

NOTA: UrlUtils era la clase que tenía el código para mí, podría tener que cambiarlo a otra cosa para satisfacer sus necesidades.

 +(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]; } } 

veloz 3

 if let url = URL(string: "fb://profile/") { if #available(iOS 10, *) { UIApplication.shared.open(url, options: [:],completionHandler: { (success) in print("Open fb://profile/: \(success)") }) } else { let success = UIApplication.shared.openURL(url) print("Open fb://profile/: \(success)") } } 

Si la aplicación de Facebook está iniciada, la página se abrirá al ejecutar el siguiente código. Si la aplicación de Facebook no está iniciada al ejecutar el código, el usuario será redirigido a la aplicación de Facebook para iniciar sesión y luego, una vez que haya conectado, Facebook no será redirigido a la página.

 NSURL *fbNativeAppURL = [NSURL URLWithString:@"fb://page/yourPageIDHere"] [[UIApplication sharedApplication] openURL:fbNativeAppURL] 

Acabo de verificar esto hoy, pero si intenta abrir una página de Facebook, puede usar “fb: // page / {ID de página}”

La ID de la página se puede encontrar debajo de su página en la sección sobre la parte inferior.

Específico para mi caso de uso, en Xamarin.Forms, puede usar este fragmento para abrir en la aplicación si está disponible, de lo contrario en el navegador.

Device.OpenUri(new Uri("fb://page/{id}"));

Esto abrirá la URL en Safari:

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com/comments.php?href=http://wombeta.jiffysoftware.com/ViewWOMPrint.aspx?WPID=317"]]; 

Para el iPhone, puede iniciar la aplicación de Facebook si está instalado usando una URL que comienza con fb: //

Puede encontrar más información aquí: http://iphonedevtools.com/?p=302 también aquí: http://wiki.akosma.com/IPhone_URL_Schemes#Facebook

Robado del sitio anterior:

 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 

Para iniciar las URL anteriores:

 NSURL *theURL = [NSURL URLWithString:@"fb://"]; [[UIApplication sharedApplication] openURL:theURL];