it-swarm.com.de

Öffnen Sie einen Facebook-Link über die native Facebook-App auf iOS

Wenn die native Facebook-App auf dem iPhone installiert ist. Wie öffne ich einen Facebook-Link von meiner App in die native Facebook-App? Beim Öffnen durch Safari ist der Link gleich:

http://www.facebook.com/AlibabaUS

Vielen Dank.

60
vietstone

Hier sind einige Schemata, die von der Facebook-App verwendet werden. Der Quelllink enthält eine ganze Menge mehr:

Beispiel

NSURL *url = [NSURL URLWithString:@"fb://profile/<id>"];
[[UIApplication sharedApplication] openURL:url];

Schemata

fb: // profile - Öffnet die Facebook-App für das Benutzerprofil

fb: // friends - Öffnet die Facebook-App in der Freundesliste

fb: // Notifications - Öffnen Sie die Facebook-App in der Benachrichtigungsliste (HINWEIS: Diese URL scheint einen Fehler zu enthalten. Die Benachrichtigungsseite wird geöffnet. Es ist jedoch nicht möglich, an eine andere Stelle der Facebook-App zu navigieren.

fb: // feed - Öffnet die Facebook-App für den News-Feed

fb: // events - Öffnet die Facebook-App auf der Events-Seite

fb: // request - Öffnet die Facebook-App in der Liste der Anfragen

fb: // notes - Öffnet die Facebook-App auf der Notes-Seite

fb: // album - Öffnet die Facebook-App zur Liste der Fotoalben

Wenn Sie vor dem Öffnen dieser URL überprüfen möchten, ob der Benutzer die Facebook-App verwendet, können Sie Folgendes tun (wie in einer anderen Antwort unten erläutert):

if ([[UIApplication sharedApplication] canOpenURL:nsurl]){
    [[UIApplication sharedApplication] openURL:nsurl];
}
else {
    //Open the url as usual
}

Quelle

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

132
WrightsCS

Verwenden Sie einfach https://graph.facebook.com/(Ihr_Benutzername oder Seitenname), um Ihre Seiten-ID zu erhalten und danach können Sie alle Festnahmen und Ihre ID sehen

nach in Ihrer IOS App verwenden: 

 NSURL *url = [NSURL URLWithString:@"fb://profile/[your ID]"];
 [[UIApplication sharedApplication] openURL:url];
27
Romano401

Um den Kommentar von yonix als Antwort hinzuzufügen, funktioniert die alte fb://page/…-URL nicht mehr. Anscheinend wurde es durch fb://profile/… ersetzt, obwohl eine Seite kein Profil ist.

26
zoul

Ich habe dies mit der folgenden Methode in MonoTouch gemacht. Ich bin mir sicher, dass ein reiner Obj-C-Ansatz nicht zu unterschiedlich wäre. Ich habe dies in einer Klasse verwendet, die manchmal wechselnde URLs hatte, weshalb ich es einfach nicht in eine if/elseif-Anweisung eingefügt habe.

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;
    }
}

Die Pause wird nicht immer aufgerufen, bevor Ihre App zu Safari/Facebook wechselt. Ich gehe davon aus, dass Ihr Programm dort anhalten wird, und rufen Sie es an, wenn Sie zurückkommen.

10
Brad Moore

Ich weiß, dass die Frage alt ist, aber zur Unterstützung der obigen Antworten wollte ich meinen Arbeitscode freigeben. __ Fügen Sie einfach diese beiden Methoden der Klasse hinzu in einem Browser. Und wenn beim Versuch, die profileId zu finden, Fehler auftreten, wird die Seite in einem Browser geöffnet. Übergeben Sie einfach die URL (zum Beispiel http://www.facebook.com/AlibabaUS ) an openUrl: und es wird alles zaubern. Hoffe es hilft jemandem.

HINWEIS: UrlUtils war die Klasse, die den Code für mich enthielt. Möglicherweise müssen Sie ihn in etwas anderes ändern, um Ihre Anforderungen zu erfüllen.

+(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];
    }

}
8
HussoM

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)")
        }
 }
3
iParesh

Wenn die Facebook-Anwendung angemeldet ist, wird die Seite geöffnet, wenn der folgende Code ausgeführt wird. Wenn die Facebook-Anwendung bei der Ausführung des Codes nicht angemeldet ist, wird der Benutzer zur Anmeldung an die Facebook-App umgeleitet und nach dem Verbinden wird Facebook nicht auf die Seite weitergeleitet!

NSURL *fbNativeAppURL = [NSURL URLWithString:@"fb://page/yourPageIDHere"] [[UIApplication sharedApplication] openURL:fbNativeAppURL]
1
user3012572

Dies wurde gerade heute verifiziert, aber wenn Sie versuchen, ein Facebook zu öffnen Seite, können Sie "fb: // page/{Page ID}"

Die Seiten-ID finden Sie unter Ihrer Seite im Abschnitt "Info" unten.

Speziell für meinen Anwendungsfall in Xamarin.Forms können Sie dieses Snippet verwenden, um es in der App zu öffnen, sofern verfügbar, andernfalls im Browser.

Device.OpenUri(new Uri("fb://page/{id}"));

1
Dan

Dadurch wird die URL in Safari geöffnet:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com/comments.php?href=http://wombeta.jiffysoftware.com/ViewWOMPrint.aspx?WPID=317"]];

Für das iPhone können Sie die Facebook-App starten, sofern installiert, indem Sie eine URL verwenden, die mit fb: // beginnt.

Weitere Informationen finden Sie hier: http://iphonedevtools.com/?p=302 auch hier: http://wiki.akosma.com/IPhone_URL_Schemes#Facebook

Gestohlen von der oben genannten Seite:

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

So starten Sie die obigen URLs:

NSURL *theURL = [NSURL URLWithString:@"fb://<insert function here>"];
[[UIApplication sharedApplication] openURL:theURL];
0
Saad