希望你一切都好。 我有一个简单的xamarin android应用程序,并试图在其中集成Facebook分享按钮。 我已完成所有文档和其他教程。应用已在Facebook注册。 但该按钮在应用程序中显示为灰色,已禁用。 我不知道是什么问题。 使用Android M 6.0.1在Nexus 5中进行测试。
感谢。
到目前为止我所做的事情几乎没有更新。
清单文件
清单文件
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id" />
<activity android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:label="@string/ApplicationName" />
<provider android:authorities="com.facebook.app.FacebookContentProvider266540057101076" android:name="com.facebook.FacebookContentProvider" android:exported="true" />
活动文件代码段
<com.facebook.share.widget.ShareButton
android:id="@+id/fShareButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_gravity="center_horizontal" />
最后是控制器。
private ShareButton fShareButton;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
getKeyHashes();
FacebookSdk.SdkInitialize(ApplicationContext);
SetContentView(Resource.Layout.details);
fShareButton = FindViewById<ShareButton>(Resource.Id.fShareButton);
fShareButton.Click += FShareButton_Click;
..........
}
private void FShareButton_Click(object sender, EventArgs e)
{
#region Facebook Share Button
View v1 = Window.DecorView.RootView;
v1.DrawingCacheEnabled = true;
Android.Graphics.Bitmap bitmap = Android.Graphics.Bitmap.CreateBitmap(v1.GetDrawingCache(true));
var photoBuilder = new SharePhoto.Builder();
photoBuilder.SetBitmap(bitmap);
var photo = photoBuilder.Build().JavaCast<SharePhoto>();
var photos = new List<SharePhoto>();
photos.Add(photo);
SharePhotoContent photoContent = new SharePhotoContent.Builder().SetPhotos(photos).Build();
fShareButton.ShareContent = photoContent;
#endregion
}
答案 0 :(得分:0)
您必须在ShareButton中设置callbackManager并填充ShareContent属性,在我的示例中,我使用ShareLinkContent作为内容,但是还有其他选项,例如“ ShareMediaContent”,“ SharePhotContent”等,您可以在{中获得更多的解释{3}}:
fShareButton = FindViewById<ShareButton>(Resource.Id.fShareButton);
callbackManager = CallbackManagerFactory.Create();
fShareButton.RegisterCallback(callbackManager, this);
var content = new ShareLinkContent.Builder();
content.SetContentUrl(Android.Net.Uri.Parse("https://www.mivinco.com/linkapp_an9.html"));
var hashtag = new ShareHashtag.Builder();
hashtag.SetHashtag("#porqueTuExperienciaCuenta");
content.SetShareHashtag((ShareHashtag)hashtag.Build());
fShareButton.ShareContent = content.Build();
此外,您还应该在活动中实现IFacebookCallback接口:
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
callbackManager.OnActivityResult(requestCode, (int)resultCode, data);
}
它在我的Android应用中正常运行。让我知道它在您的应用中是否也能正常工作。