Откройте ссылку facebook с помощью собственного приложения Facebook на iOS
Если родное приложение Facebook установлено на iPhone. Как открыть ссылку facebook в родном приложении Facebook из моего приложения. В случае открытия Safari, ссылка такая же, как:
http://www.facebook.com/AlibabaUS
спасибо.
9 ответов:
вот некоторые схемы, которые использует приложение Facebook, есть еще тонна на исходной ссылке:
пример
NSURL *url = [NSURL URLWithString:@"fb://profile/<id>"]; [[UIApplication sharedApplication] openURL:url];- схемы
ФБ://профиль – откройте приложение Facebook для профиля пользователя
fb: / / друзья-Откройте приложение Facebook в списке друзей
FB://уведомления-Откройте приложение Facebook в списке уведомлений (примечание: там, кажется, ошибка с этим URL. Откроется страница уведомления. Однако, невозможно перейти в другое место в приложении Facebook)
fb: / / feed-Откройте приложение Facebook В Ленте Новостей
fb: / / события-Откройте приложение Facebook на странице событий
fb: / / requests-Откройте приложение Facebook в списке запросов
fb: / / notes-Откройте приложение Facebook на странице Notes
fb: / / альбомы-Откройте приложение Facebook для списка фотоальбомов
Если перед открытием этого url вы хотите проверить, является ли пользователь FAS приложением facebook, вы можете сделать следующее (как описано в другом ответе ниже):
if ([[UIApplication sharedApplication] canOpenURL:nsurl]){ [[UIApplication sharedApplication] openURL:nsurl]; } else { //Open the url as usual }источник
просто используйте https://graph.facebook.com/(your_username или имя страницы), чтобы получить идентификатор страницы и после того, как вы можете увидеть все задержать и Ваш идентификатор
после того, как в вашем IOS-приложении используется:
NSURL *url = [NSURL URLWithString:@"fb://profile/[your ID]"]; [[UIApplication sharedApplication] openURL:url];
добавить комментарий yonix в качестве ответа, старый
fb://page/…URL больше не работает. Видимо он был заменен наfb://profile/…, даже если страница не является профилем.
Я сделал это в MonoTouch в следующем методе, я уверен, что чистый подход на основе Obj-C не будет слишком отличаться. Я использовал это внутри класса, который время от времени менял URL-адреса, поэтому я просто не помещал его в Оператор 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; } }перерыв не всегда вызывается до изменения вашего приложения на Safari / Facebook. Я предполагаю, что ваша программа остановится там и позвонит, когда вы вернетесь к ней.
Я знаю, что вопрос старый, но в поддержку приведенных выше ответов я хотел поделиться своим рабочим кодом. Просто добавьте эти два метода в любой класс.Код проверяет, установлено ли приложение facebook, если оно не установлено, url-адрес открывается в браузере.И если какие-либо ошибки возникают при попытке найти profileId, страница будет открыта в браузере. Просто передайте url (например,http://www.facebook.com/AlibabaUS) для openUrl: и он будет делать все волшебство. Надеюсь, это поможет кто-нибудь!.
Примечание: UrlUtils был класс, который имел код для меня, вы, возможно, придется изменить его на что-то другое, чтобы удовлетворить ваши потребности.
+(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)") } }
если приложение Facebook вошло в систему, страница будет открыта при выполнении следующего кода. Если приложение Facebook не вошло в систему при выполнении кода, пользователь будет перенаправлен в приложение Facebook для входа в систему, а затем после подключения Facebook не перенаправляется на страницу!
NSURL *fbNativeAppURL = [NSURL URLWithString:@"fb://page/yourPageIDHere"] [[UIApplication sharedApplication] openURL:fbNativeAppURL]
просто проверил это сегодня, но если вы пытаетесь открыть Facebook страница, вы можете использовать " fb: / / page / {page ID}"
идентификатор страницы можно найти под вашей страницей в разделе о программе внизу.
специфичный для моего варианта использования, в Xamarin.Формы, вы можете использовать этот фрагмент кода, чтобы открыть в приложении, если таковые имеются, в противном случае в браузере.
Device.OpenUri(new Uri("fb://page/{id}"));
это откроет URL-адрес в Safari:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com/comments.php?href=http://wombeta.jiffysoftware.com/ViewWOMPrint.aspx?WPID=317"]];для iphone вы можете запустить приложение Facebook, если оно установлено, используя url-адрес, начинающийся с fb://
дополнительную информацию можно найти здесь:http://iphonedevtools.com/?p=302 Также здесь:http://wiki.akosma.com/IPhone_URL_Schemes#Facebook
украдено с вышеуказанного сайта:
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чтобы запустить вышеуказанные url:
NSURL *theURL = [NSURL URLWithString:@"fb://<insert function here>"]; [[UIApplication sharedApplication] openURL:theURL];
Comments