如何在imageview Click事件上打开Facebook应用?

时间:2019-01-28 06:51:13

标签: android android-imageview facebook-apps

我想在我的应用程序中打开Facebook应用程序,它将显示在Imageview单击事件上。 我已推荐10-20个链接尝试了所有链接,但对我没有任何帮助。 我不想使用Facebook默认图像按钮,我想在imageview点击事件中使用它。

我尝试了链接:

还有更多

尝试所有内容后,我当前的代码为:

 public void shareFacebook() {
    String fullUrl = "https://m.facebook.com";
    try {
        Intent sharingIntent = new Intent(Intent.ACTION_SEND);
        sharingIntent.setPackage ("com.facebook.katana");
        sharingIntent.putExtra(Intent.EXTRA_TEXT, "your title text");
        context.startActivity(sharingIntent);

    } catch (Exception e) {
        Intent i = new Intent(Intent.ACTION_VIEW);
        i.setData(Uri.parse(fullUrl));
        context.startActivity(i);

    }
}

Manifest.xml

<meta-data android:name="com.facebook.sdk.ApplicationId"
        android:value="1975812626048291"/>
    <provider
        android:name="com.facebook.FacebookContentProvider"
    android:authorities="com.facebook.app.FacebookContentProvider1975812626048291"
    android:exported="true" />
    <activity android:name="com.facebook.FacebookActivity"
        android:configChanges=
            "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name" />
    <activity android:theme="@style/AppTheme" android:name="com.facebook.katana.FacebookLoginActivity"
        android:permission="com.facebook.permission.prod.FB_APP_COMMUNICATION" android:exported="false"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:windowSoftInputMode="stateHidden|adjustResize" />

依赖项

 implementation 'com.facebook.android:facebook-login:4.33.0'

显示的版本应该与Recycler View版本相同,但是放置相同的版本后仍然无法使用。

 jcenter()
    mavenCentral()
    maven { url 'https://jitpack.io'}

描述实现的正确方法,我也将imageview放在了recyclerview上,所以无论您建议它在recyclerview的onBindViewHolder()上是什么,

当前错误是:

  

找不到明确的活动类别{com.facebook.katana/com.facebook.katana.ShareLinkActivity}; have you declared this activity in your AndroidManifest.xml?

我不知道如何在清单中描述Facebook的活动。 我们是否需要另一个Java活动只是为了在应用程序内部打开应用程序?

2 个答案:

答案 0 :(得分:0)

我认为问题在于您没有setType。 试试这个例子。

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
    sharingIntent.setType("text/plain");
    sharingIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
    sharingIntent.putExtra(Intent.EXTRA_TEXT, "Text...");
    sharingIntent.setPackage("com.facebook.katana");
    startActivity(sharingIntent);

答案 1 :(得分:-1)

在不使用Facebook SDk的情况下打开FB App 这是我对这个问题的要求

参考链接

Share image and text through Whatsapp or Facebook

 Intent FBIntent = new Intent(Intent.ACTION_SEND);
    FBIntent.setType("text/plain");
    FBIntent.setPackage("com.facebook.katana");
    FBIntent.putExtra(Intent.EXTRA_TEXT, "The text you wanted to share");
    try {
        context.startActivity(FBIntent);
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(context, "Facebook have not been installed.", Toast.LENGTH_SHORT).show( );
    }

对于instagram,twitter也可以正常工作,只需要更改程序包名称即可。