【发布时间】:2016-06-10 23:41:44
【问题描述】:
【问题讨论】:
标签: c# xamarin xamarin.ios social
【问题讨论】:
标签: c# xamarin xamarin.ios social
可以这样做:
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);
}
您共享的项目必须从 NSObjects 派生。
您可以通过在UIActivityViewController 上设置ExcludedActivityTypes 来排除活动
【讨论】:
现在我在项目中使用这个组件:
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 对话框模式确实比仅在浏览器中打开共享对话框更有用。
【讨论】:
【讨论】:
最好的方法是使用
https://github.com/jguertl/SharePlugin
然后在安装包之后你可以像这样调用命令或事件:
public Command Share {
get {
return new Command ((parameter) => {
CrossShare.Current.Share(((Joke)parameter).JokeTxt,"title");
});
}
}
【讨论】:
CrossShare.Current.Share("message","title");