从您的Android应用程序打开Facebook本机应用程序

时间:2015-03-24 18:59:28

标签: android facebook url-scheme

我的问题与此问题直接相关Open Facebook page from Android app?哪个答案(目前的版本)不是标记的答案,而是此答案

public static Intent newFacebookIntent(PackageManager pm, String url) {
Uri uri;
try {
    pm.getPackageInfo("com.facebook.katana", 0);
    // https://stackoverflow.com/a/24547437/1048340
    uri = Uri.parse("fb://facewebmodal/f?href=" + url);
} catch (PackageManager.NameNotFoundException e) {
    uri = Uri.parse(url);
}
return new Intent(Intent.ACTION_VIEW, uri);
}

2015年2月7日确认工作完毕。

我的问题是你应该使用整个网址(比如www.facebook.com/mypage),或者只是添加页面的网址,使其成为fb://facewebmodal/f?href=mypage。我试过了两个,它只是打开没有实际页面的fb应用程序。它会在两次尝试时显示空白的fb页面。

有人可以通过网址为我提供一个有效公共网页的示例吗?

5 个答案:

答案 0 :(得分:2)

未记录或支持该功能,因此您可能会得到未知结果。您可能想尝试传递页面ID或配置文件ID而不是名称。您可以通过调用https://graph.facebook.com/<name>获取ID并解析结果。

答案 1 :(得分:2)

您可以尝试将mypage写为https://www.facebook.com/ID。那么整个uri应该是

fb:// facewebmodal / f?href = https://www.facebook.com/ID

并将ID更改为您要访问的页面。

答案 2 :(得分:1)

我有同样的问题。我搜索了一会儿并在Open facebook page from android app (in facebook version > v11)和那里Open Facebook page from Android app?尝试了所有答案,最后我弄清楚了真正的问题是什么。代码没有任何问题,但奇怪的行为是关于Facebook应用程序本身。如果Facebook应用程序在后台,它只是切换回前台而不导航到所请求的页面。你只需从后台刷掉它(杀死实例)并再次尝试你的代码。

考虑到大多数用户在后台留下Facebook应用程序,这是一个需要修复的问题。虽然我认为这是关于Facebook应用程序本身,但不知何故它可能与该设备有关。我正在使用带有v 6.0.1的Nexus 6,并且没有机会在另一个Android版本设备上测试它。

答案 3 :(得分:0)

请记住有类似的问题。

试试移动网址:

而不是

String facebookUrl = "https://facebook.com/...";

使用

String facebookUrl = "https://m.facebook.com/...";

答案 4 :(得分:0)

我将它用于我的应用程序,很好,科特林

try {
    val intent = Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/100674618166286"));
    startActivity(intent);
} catch(e: Exception) {
    startActivity( Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/iqtousd")));
}