2016-12-28 98 views
0

我想要分享一张图片。共享选项应该包含我的应用程序xyz。例如,如果我打开一个图像,并希望分享它的Instagram共享选项包含instagram,脸谱,微博,电子邮件等。就像我的应用程序应该在共享选项。我怎么能在xamarin.forms(包括ios和android)中做到这一点。通过我的应用程序在xamarin.forms中共享图像

回答

1

我认为应用程序图标是在您的应用程序专用的目录中创建的,所以其他应用程序将无法获取它。

你需要保存它的地方在那里的其他应用程序可以像这样访问它然后从该位置共享它的一些事情:

public void Share (string title, string content) 
{ 
    if (string.IsNullOrEmpty (title) || string.IsNullOrEmpty (content)) 
       return; 

    Bitmap b = BitmapFactory.DecodeResource(Resources,Resource.Drawable.icon_120); 

    var tempFilename = "test.png"; 
    var sdCardPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath; 
    var filePath = System.IO.Path.Combine(sdCardPath, tempFilename); 
    using (var os = new FileStream(filePath, FileMode.Create)) 
    { 
     b.Compress(Bitmap.CompressFormat.Png, 100, os); 
    } 
    b.Dispose(); 

    var imageUri = Android.Net.Uri.Parse ($"file://{sdCardPath}/{tempFilename}"); 
    var sharingIntent = new Intent(); 
    sharingIntent.SetAction (Intent.ActionSend); 
    sharingIntent.SetType ("image/*"); 
    sharingIntent.PutExtra (Intent.ExtraText, content); 
    sharingIntent.PutExtra (Intent.ExtraStream, imageUri); 
    sharingIntent.AddFlags (ActivityFlags.GrantReadUriPermission); 
    StartActivity (Intent.CreateChooser (sharingIntent, title)); 
} 

同时添加ReadExternalStorage和WriteExternalStorage权限到您的应用。

让我知道这是否有效。

+0

我想做的完全相反。 @sumeet –

+0

我想要我的应用程序共享选项。 –

相关问题