Ein wiederverwendbarerer Ansatz.
Dies ist eine Funktionalität, die wir normalerweise in den meisten unserer Apps verwenden. Daher ist hier ein wiederverwendbarer Code, um dies zu erreichen.
(Ähnlich wie bei anderen Antworten in Bezug auf Fakten. Hier veröffentlichen, um die Implementierung zu vereinfachen und wiederverwendbar zu machen.)
"fb://page/
funktioniert nicht mit neueren Versionen der FB-App. Sie sollten fb://facewebmodal/f?href=
für neuere Versionen verwenden. ( Wie in einer anderen Antwort hier erwähnt )
Dies ist ein vollwertiger Arbeitscode, der derzeit in einer meiner Apps verfügbar ist:
public static String FACEBOOK_URL = "https://www.facebook.com/YourPageName";
public static String FACEBOOK_PAGE_ID = "YourPageName";
//method to get the right URL to use in the intent
public String getFacebookPageURL(Context context) {
PackageManager packageManager = context.getPackageManager();
try {
int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode;
if (versionCode >= 3002850) { //newer versions of fb app
return "fb://facewebmodal/f?href=" + FACEBOOK_URL;
} else { //older versions of fb app
return "fb://page/" + FACEBOOK_PAGE_ID;
}
} catch (PackageManager.NameNotFoundException e) {
return FACEBOOK_URL; //normal web url
}
}
Diese Methode gibt die richtige URL für die App zurück, wenn sie installiert ist, oder die Web-URL, wenn die App nicht installiert ist.
Starten Sie dann eine Absicht wie folgt:
Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
String facebookUrl = getFacebookPageURL(this);
facebookIntent.setData(Uri.parse(facebookUrl));
startActivity(facebookIntent);
Das ist alles was du brauchst.