Open link to Facebook page from iOS app
You have to use the facebook ID for the given page rather than the vanity URL. To get the pages ID, enter your page's vanity name at the following URL and copy the value for "id":
https://graph.facebook.com/yourappspage
Once you have the id, you can set up the method to check if FB is installed using the canOpenURL method and serve the appropriate content for both states:
NSURL *facebookURL = [NSURL URLWithString:@"fb://profile/113810631976867"];
if ([[UIApplication sharedApplication] canOpenURL:facebookURL]) {
[[UIApplication sharedApplication] openURL:facebookURL];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://facebook.com"]];
}
It seems that since the last answer Facebook have changed the scheme for pages (profile is same as before)
the page_id
is now the part of URL query.
So in order to redirect to fb app, the url has to be in the format:
fb://page/?id=your_page_numeric_id
Also make sure to whitelist fb
scheme in your apps Info.plist
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fb</string>
</array>
In case there will be any further modifications or you don't know your facebook page's page_id
, you can extract the precise iOS fb
URL from your Facebook web page source.
- Open your Facebook page in Safari
- Right click -> Inspect Element
- Search for
al:ios:url
You should be able to find:
<meta property="al:ios:url" content="fb://page/?id='your_page_numeric_id'">
Copying this URL into your app and then calling:
guard let facebookURL = NSURL(string: "fb://page/?id=your_page_numeric_id") else {
return
}
if (UIApplication.sharedApplication().canOpenURL(facebookURL)) {
UIApplication.sharedApplication().openURL(facebookURL)
} else {
guard let webpageURL = NSURL(string: "http://facebook.com/yourPage/") else {
return
}
UIApplication.sharedApplication().openURL(webpageURL)
}
should do the job...