65

ネイティブの Facebook アプリが iPhone にインストールされている場合。アプリからネイティブ Facebook アプリへの Facebook リンクを開くにはどうすればよいですか。Safari で開く場合、リンクは次のようになります。

http://www.facebook.com/AlibabaUS

ありがとうございました。

4

11 に答える 11

132

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
}

ソース

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

于 2012-05-02T15:02:29.753 に答える
27

https://graph.facebook.com/(your_usernameまたは page name) を使用してページ ID を取得すると、すべての拘束と ID を確認できます。

あなたのIOSアプリで使用した後:

 NSURL *url = [NSURL URLWithString:@"fb://profile/[your ID]"];
 [[UIApplication sharedApplication] openURL:url];
于 2012-11-20T09:53:31.287 に答える
26
于 2012-11-07T09:35:19.440 に答える
10

私は次の方法で 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 に変更される前に、ブレークが常に呼び出されるとは限りません。あなたのプログラムはそこで停止し、戻ってきたときにそれを呼び出すと思います。

于 2012-11-14T01:42:32.087 に答える
8

質問が古いことは知っていますが、上記の回答を支持して、作業コードを共有したいと思いました。これら 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];
    }

}
于 2013-09-02T13:38:08.523 に答える
1

Facebook アプリケーションがログインしている場合、次のコードを実行するとページが開きます。コードの実行時に Facebook アプリケーションがログインしていない場合、ユーザーは Facebook アプリにリダイレクトされてログインし、接続後、Facebook はページにリダイレクトされません!

NSURL *fbNativeAppURL = [NSURL URLWithString:@"fb://page/yourPageIDHere"] [[UIApplication sharedApplication] openURL:fbNativeAppURL]
于 2013-11-20T10:23:43.840 に答える
0

これにより、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];
于 2012-05-02T15:04:17.987 に答える