C# Xamarin iOS共享按钮
如何在Xamarin.iOS中像在本地开发中一样实现社交共享?C# Xamarin iOS共享按钮,c#,xamarin,xamarin.ios,social,C#,Xamarin,Xamarin.ios,Social,如何在Xamarin.iOS中像在本地开发中一样实现社交共享? 您可以尝试使用此组件:可以执行以下操作: public override void ViewDidLoad () { base.ViewDidLoad (); // Perform any additional setup after loading the view, typically from a nib. var button = ne
您可以尝试使用此组件:可以执行以下操作:
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
var button = new UIButton (UIButtonType.RoundedRect) {
Frame = UIScreen.MainScreen.Bounds,
BackgroundColor = UIColor.Red
};
button.TouchUpInside += (sender, e) => {
var item = NSObject.FromObject ("HI");
var activityItems = new NSObject[] { item };
UIActivity[] applicationActivities = null;
var activityController = new UIActivityViewController (activityItems, applicationActivities);
PresentViewController (activityController, true, null);
};
Add (button);
}
void Share(string sharingUrl)
{
var content = new ShareLinkContent();
content.SetContentUrl(new NSUrl(sharingUrl));
var shareDialog = new FacebookShareDialog
{
FromViewController = UIApplication.SharedApplication.KeyWindow.RootViewController,
Mode = ShareDialogMode.Native
};
shareDialog.SetShareContent(content);
shareDialog.Show();
}
您共享的项目必须从NSObjects派生
通过在UIActivityViewController
通过上面的代码,我在模拟器中得到了:
现在我在项目中使用此组件: 在button的TouchUpInside中,我调用了如下方法:
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
var button = new UIButton (UIButtonType.RoundedRect) {
Frame = UIScreen.MainScreen.Bounds,
BackgroundColor = UIColor.Red
};
button.TouchUpInside += (sender, e) => {
var item = NSObject.FromObject ("HI");
var activityItems = new NSObject[] { item };
UIActivity[] applicationActivities = null;
var activityController = new UIActivityViewController (activityItems, applicationActivities);
PresentViewController (activityController, true, null);
};
Add (button);
}
void Share(string sharingUrl)
{
var content = new ShareLinkContent();
content.SetContentUrl(new NSUrl(sharingUrl));
var shareDialog = new FacebookShareDialog
{
FromViewController = UIApplication.SharedApplication.KeyWindow.RootViewController,
Mode = ShareDialogMode.Native
};
shareDialog.SetShareContent(content);
shareDialog.Show();
}
其中FacebookShareDialog是一个派生类
public class FacebookShareDialog : ShareDialog
{
public FacebookShareDialog()
: base(NSObjectFlag.Empty)
{
}
}
它比只添加FacebookShareButton效果更好,因为您可以选择它的共享方式-本机或共享页对话框模式确实比只在浏览器中打开共享对话框更有用。最好的方法是使用
然后,在安装软件包后,您可以调用命令或事件,如下所示:
public Command Share {
get {
return new Command ((parameter) => {
CrossShare.Current.Share(((Joke)parameter).JokeTxt,"title");
});
}
}
这是非常过时的,因为facebook改变了他们的apioh抱歉,我的宝贝,已经在测试中实现了这一点,但问题是和附件图片上的共享视图是一样的,不仅仅是社交网络列表,它看起来很差,所以只有邮件、推特、阅读列表和副本?我已经附上了运行模拟器时看到的内容,他们看起来和我一样,但也许我错过了什么。你在构建什么iOS版本?你能发布你的测试实现代码吗?嗨!非常感谢您的回答,是的,现在它看起来真的像我需要的,只是被applicationActivities数组弄糊涂了。但我没有看到我的任何社交网络(twitter或fb),我甚至在设置中登录了facebook,但仍然没有什么好的,不仅仅是我需要facebook登录,它也是twitter和vk.com,我希望有更简单的解决方案好的,对于twitter,我们正在编写自己的TwitterKit绑定。幸运的是,我们现在不需要Vkontakte。但一般来说,这是一个更难但更正确的流程,因为许多用户不在浏览器中登录社交网络,只在应用程序中登录。什么也不做:/i有一个内部按钮:CrossShare.Current.Share(“消息”、“标题”)代码>