当前位置: 首页 > 知识库问答 >
问题:

在Android上的Facebook App(如果安装)中打开Facebook Page[复制]

胡星汉
2023-03-14

如果Facebook应用程序可用,我想从Android应用程序打开我的Facebook页面-如果不可用:此页面应在默认浏览器中打开。

为此,我尝试了以下代码:

try {
  Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/MY_PAGE_ID"));
startActivity(intent);
} catch (Exception e) {
   startActivity(new Intent(Intent.ACTION_VIEW,    Uri.parse("http://www.facebook.com/MY_PAGE_NAME")));
}

问题是:我这里有一个Android设备,带有最新版本的脸书。如果我想从我的应用程序打开Facebook页面,Facebook应用程序将打开,但没有我的页面。

我只看到这样的信息:

加载时间表时出现问题。

怎么了?

共有3个答案

暨宸
2023-03-14

好吧,我修改了@Android力学代码,因为在设备上被facebook禁用的应用程序崩溃!

以下是修改后的getFacebookUrl:

public String getFacebookPageURL(Context context) {
        PackageManager packageManager = context.getPackageManager();
        try {
            int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode;

            boolean activated =  packageManager.getApplicationInfo("com.facebook.katana", 0).enabled;
            if(activated){
                if ((versionCode >= 3002850)) { 
                    return "fb://facewebmodal/f?href=" + FACEBOOK_URL;
                } else { 
                    return "fb://page/" + FACEBOOK_PAGE_ID;
                }
            }else{
                return FACEBOOK_URL;
            }
         } catch (PackageManager.NameNotFoundException e) {
            return FACEBOOK_URL; 
        }
    }

唯一增加的是看看应用程序是否被禁用。如果被禁用,应用程序将调用webbrowser!

南宫森
2023-03-14

这适用于最新版本:

去https://graph.facebook.com/ (https://graph.facebook.com/fsintents 例如)。

复制您的id使用此方法:

public static Intent getOpenFacebookIntent(Context context) {
    try {
        context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
        return new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/<id_here>"));
    } catch (Exception e) {
        return new Intent(Intent.ACTION_VIEW,Uri.parse("https://www.facebook.com/<user_name_here>"));
    }
}
从景曜
2023-03-14

"fb://page/不适用于较新版本的FB应用。你应该使用fb://facewebmodal/f?href=用于较新版本。

这是一个完整的工作代码目前生活在我的一个应用程序:

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

如果安装了应用程序,此方法将返回正确的url;如果未安装应用程序,则返回web url。

然后开始一个意图,如下所示:

Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
String facebookUrl = getFacebookPageURL(this);
facebookIntent.setData(Uri.parse(facebookUrl));
startActivity(facebookIntent);

这就是你所需要的。

 类似资料:
  • 我在Android Studio上遇到了一些问题,所以我决定重新安装Android Studio。 所以我所做的就是重命名旧的Android Studio文件夹,简单地下载新的Android Studio,并用相同的旧文件夹名称解压缩内容。 但这导致Android Studio无法打开。但是,如果我带回旧文件夹,并将其重命名为其原始名称,它将打开之前我面临的问题。 有人能指导我如何打开新的Andr

  • 我在使用用户guest和密码guest(默认凭据)访问http://localhost:15672时收到此错误 所以我卸载了Rabbit MQ服务器和Erlang。 然后从官方网站下载它们并重新安装,首先是“Erlang for Windows installer 64位”,然后是“RabbitMQ-Server-3.6.12.exe”。 但是,我仍然得到err_connection_delect

  • 问题内容: 我在Android手机上安装Pocketsphinx时遇到一些问题,但在CMUSphinx的支持论坛,IRC,现有的StackOverflow帖子或强化的Googling上找不到答案。如果在座的人有时间愿意提供帮助,我将不胜感激。 首先,我对于是否可以在Android上安装Pocketsphinx感到困惑。我相信我需要Java容器才能在Android上运行,因此我尝试安装Sphinx4

  • 对于我的Ubuntu机器,我从这个页面下载了最新版本的Android SDK。 解压下载的文件后,我试图搜索安装说明,发现: 要在Linux上入门: 记下系统上SDK目录的名称和位置-以后从命令行使用SDK工具时需要引用SDK目录。 我们到底该怎么做?

  • 我正在尝试在一个现有应用程序上使用chilkat库,该应用程序在Android Studio(macOS-Android Studio 3.5)下使用API 16。需要关于如何在Android Studio中正确导入chilkat库的建议。 我需要确定库是否可以与应用程序一起使用(关于一些SFTP操作)。 遵循Chilkat现场的说明(https://www.chilkatsoft.com/chi