我的问题与此问题直接相关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页面。
有人可以通过网址为我提供一个有效公共网页的示例吗?
答案 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")));
}