将文字分享到社交网络,xamarin.forms Android

时间:2018-01-16 06:36:06

标签: c# xamarin xamarin.forms share

我一直在努力为社交平台实现文本的共享功能。我尝试使用DependencyService的代码仅在" subject"中返回我的文本。我的电子邮件。当我尝试将文本复制到剪贴板时,这不起作用。该文本也没有传递给任何其他社交平台。请查看以下代码。我有什么遗失的吗?

IShareService(接口类)

public interface IShareService
    {
        void SharePageLink(string link);
    }

ShareService(Android项目中的类)

[assembly: Dependency(typeof(ShareService))]
namespace LoyaltyWorx.Droid
{
    public class ShareService: IShareService
    {
        public void SharePageLink(string text)
        {
            var context = Forms.Context;
            Activity activity = context as Activity;

            Intent share = new Intent(Intent.ActionSend);
            share.SetType("text/plain");
            share.AddFlags(ActivityFlags.ClearWhenTaskReset);
            share.PutExtra(Intent.ExtraSubject, "Cool");
            share.PutExtra(Intent.ExtraSubject, text);

            activity.StartActivity(Intent.CreateChooser(share, "Share text!"));

        }

    }
}

Promotions.xaml.cs(要分享的文字)

 private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
        {
            string shareText = "Promotion: " + store + "- " + description;
            DependencyService.Get<IShareService>().SharePageLink(shareText);
        }

1 个答案:

答案 0 :(得分:1)

您可以在Xamarin.Forms中使用Share plugin来共享消息或链接,将文本复制到剪贴板,或在任何Xamarin或Windows应用中打开浏览器。

在Portable,Android和UWP项目中添加Plugin.Share参考,并使用如下:

using Plugin.Share; 

void OpenBrowser() {  
    CrossShare.Current.OpenBrowser("http://www.google.com");  
}  
void TextShare() {  
    CrossShare.Current.Share("Share Text", "Sample Title");  
}  
void LinkShare() {  
    CrossShare.Current.ShareLink("Link To Share", "http://www.stackoverflow.com/");  
}   

有关详细信息,请参阅this官方文档。