Если встроенное приложение Facebook установлено на iPhone. Как открыть ссылку facebook в родном приложении Facebook из моего приложения. В случае открытия Safari ссылка такая же, как:
Спасибо.
Если встроенное приложение Facebook установлено на iPhone. Как открыть ссылку facebook в родном приложении Facebook из моего приложения. В случае открытия Safari ссылка такая же, как:
Спасибо.
Вот несколько схем, которые использует приложение Facebook, есть еще тонна ссылки на источник:
NSURL *url = [NSURL URLWithString:@"fb://profile/<id>"];
[[UIApplication sharedApplication] openURL:url];
fb://profile - открыть приложение Facebook для профиля пользователей
fb://friends - Откройте приложение Facebook в списке друзей
fb://Уведомления - Откройте приложение Facebook в списке уведомлений (ПРИМЕЧАНИЕ: появляется ошибка с этим URL-адресом. Откроется страница "Уведомления", однако ее невозможно перейти в другое место в приложении Facebook)
fb://feed - открыть приложение Facebook в ленте новостей
fb://events - открыть приложение Facebook на странице "События"
fb://request - Откройте приложение Facebook в списке запросов
fb://notes - Откройте приложение Facebook на странице Notes
fb://альбомы - Откройте приложение Facebook в списке фотоальбомов
Если перед открытием этого URL-адреса вы хотите проверить, может ли пользователь использовать приложение 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];
Чтобы добавить комментарий yonixs в качестве ответа, старый 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];
}
}
Если приложение Facebook зарегистрировано, страница будет открыта при выполнении следующего кода. Если приложение Facebook не будет входить в систему при выполнении кода, пользователь будет перенаправлен в приложение Facebook для входа в систему, а затем после подключения Facebook не будет перенаправлен на страницу!
NSURL *fbNativeAppURL = [NSURL URLWithString:@"fb://page/yourPageIDHere"] [[UIApplication sharedApplication] openURL:fbNativeAppURL]
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)")
}
}
Откроется 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];
Просто проверьте это сегодня, но если вы пытаетесь открыть страницу на странице, вы можете использовать "fb://page/{Page ID}"
Идентификатор страницы можно найти под вашей страницей в разделе about внизу.
В моем случае использования в Xamarin.Forms вы можете использовать этот фрагмент для открытия в приложении, если он доступен, в противном случае в браузере.
Device.OpenUri(new Uri("fb://page/{id}"));