ネイティブの 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://notifications – Facebook アプリを開いて通知リストを表示します (注: この URL にはバグがあるようです。通知ページが開きます。ただし、Facebook アプリの他の場所に移動することはできません)。
fb://feed – Facebook アプリを開いてニュース フィードを表示します
fb://events – Facebook アプリを開いてイベント ページに移動します
fb://requests – Facebook アプリを開いてリクエスト リストを表示します
fb://notes – Facebook アプリを開いてメモページを開きます
fb://albums – Facebook アプリを開いてフォト アルバム リストを表示
この URL を開く前に、ユーザーが Facebook アプリを使用しているかどうかを確認したい場合は、次の操作を実行できます (以下の別の回答で説明されているように)。
if ([[UIApplication sharedApplication] canOpenURL:nsurl]){
[[UIApplication sharedApplication] openURL:nsurl];
}
else {
//Open the url as usual
}
https://graph.facebook.com/(your_usernameまたは page name) を使用してページ ID を取得すると、すべての拘束と ID を確認できます。
あなたのIOSアプリで使用した後:
NSURL *url = [NSURL URLWithString:@"fb://profile/[your ID]"];
[[UIApplication sharedApplication] openURL:url];
私は次の方法で 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 に変更される前に、ブレークが常に呼び出されるとは限りません。あなたのプログラムはそこで停止し、戻ってきたときにそれを呼び出すと思います。
質問が古いことは知っていますが、上記の回答を支持して、作業コードを共有したいと思いました。これら 2 つのメソッドを任意のクラスに追加するだけです。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]
これにより、Safari で URL が開きます。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com/comments.php?href=http://wombeta.jiffysoftware.com/ViewWOMPrint.aspx?WPID=317"]];
iPhone の場合、fb:// で始まる URL を使用してインストールすると、Facebook アプリを起動できます。
詳細については、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];