2016-12-28 89 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

我想要我的應用程序共享選項。 –

相關問題