Xamarin iOS共享按钮

Xamarin iOS共享按钮

问题描述:

如何在Xamarin.iOS社区共享中实现像本地开发一样? enter image description hereXamarin iOS共享按钮

你可以利用这个组件尝试:https://components.xamarin.com/view/xamarin.social

+0

这是非常过时的,因为Facebook的改变了自己的API –

+0

哦,对不起,我的坏 – CDrosos

可以做这样的事情:从NSObjects衍生

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

大家分享拥有的项目。

,您可以通过在UIActivityViewController

设置ExcludedActivityTypes有了上面的代码,我得到这个在模拟器排除活动: Simulator

+0

是的,已经实施了这个测试,但问题是关于相同的共享视图上的附加图片,不仅仅是社交网络列表,它看起来很差 –

+0

那么只需邮件,Twitter,阅读列表和复制? –

+0

nope,其他社交网络也如facebook,vkontakte等。 –

现在,在项目中,我使用这个组件:

https://components.xamarin.com/view/facebook-sdk

并在按钮的TouchUpInside中我调用了这样的方法:

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由于事实上,你可以选择如何共享 - 原生或ShareSheet对话模式实际上不仅仅是开设更多的有用在浏览器*享对话框

+0

好吧,不仅仅是我需要的Facebook登录,它也是twitter和vk.com,我希望有更简单的解决方案 –

+0

好吧,对于Twitter我们正在编写我们自己的TwitterKit绑定。幸运的是,我们现在不需要Vkontakte。 但通常它是一个更难但更正确的流程,因为许多用户不会登录到浏览器中的社交网络,只能在应用程序中登录。 – Jauhenka

最好的方法是使用

https://github.com/jguertl/SharePlugin

然后安装,你可以调用命令或事件就是这样包装后:

public Command Share { 
      get { 
       return new Command ((parameter) => { 
        CrossShare.Current.Share(((Joke)parameter).JokeTxt,"title"); 
       }); 
      } 
     } 
+0

什么都不做:/ 我有这里面的按钮触摸: 'CrossShare.Current.Share(“message”,“title”);'' –