我有一種方法可以通過短信、WhatsApp、電子郵件、Facebook 等共享影像,在呼叫它時會傳遞一個 URL。
該方法從共享 URL 下載影像,影像已準備好發送(Xamarin.Essentials.Share使用)。
問題是我將文本與影像(需要給出一些背景關系)一起作為方法屬性的一部分傳遞,但是在共享時文本沒有顯示給我,只有影像單獨顯示,并且它沒有很好地為我服務,因為它會在沒有任何背景關系或資訊的情況下發送它。
關于如何在 Android 上傳遞影像和文本的任何其他想法?
也許某種自動復制,然后將一些文本粘貼到鍵盤剪貼板?
圖文法:
public async Task DownloadImageAndShareIt(string URL)
{
try
{
string localPath = "";
var webClient = new WebClient();
webClient.DownloadDataCompleted = (s, e) =>
{
byte[] bytes = new byte[e.Result.Length];
bytes = e.Result; // get the downloaded data
string documentsPath = Android.OS.Environment.GetExternalStoragePublicDirectory
(Android.OS.Environment.DirectoryPictures).AbsolutePath;
var partedURL = URL.Split('/');
string localFilename = partedURL[partedURL.Length - 1];
localFilename = "MyAPP" localFilename;
localPath = System.IO.Path.Combine(documentsPath, localFilename);
File.WriteAllBytes(localPath, bytes); // writes to local storage
MediaScannerConnection.ScanFile(Application.Context, new string[] { localPath }, null, null);
};
var url = new Uri(URL);
webClient.DownloadDataAsync(url);
var partedURL = URL.Split('/');
string localFilename = partedURL[partedURL.Length - 1];
localFilename = "MyAPP" localFilename;
string documentsPath = Android.OS.Environment.GetExternalStoragePublicDirectory
(Android.OS.Environment.DirectoryPictures).AbsolutePath;
localPath = System.IO.Path.Combine(documentsPath, localFilename);
//Done.
}
catch (Exception Ex)
{
string LineErrorNumber = "Error line: " Ex.StackTrace.Substring(Ex.StackTrace.Length - 7, 7) "\r\n" "Error: " Ex.Message;
}
finally
{
await Share.RequestAsync(new ShareFileRequest
{
Title = **"Delicate info from MyAPP"**,
File = new ShareFile(localPath)
});
}
}

應該注意的是,如果我使用另一種僅用于文本的 Share 方法,那么如果我沒有問題地共享它。
純文本方法:
private async Task ShareText(string Tipo, string Titulo, string ContenidoaCompartir)
{
try
{
await Share.RequestAsync(new ShareTextRequest
{
Uri = "Delicate info from MyAPP",
Title = Titulo,
Subject = (Tipo " de " Titulo).ToString(),
Text = "MyApp - " Tipo " de " Titulo ":" System.Environment.NewLine ContenidoaCompartir System.Environment.NewLine
});
}
catch (Exception Ex)
{
string LineErrorNumber = "Error line: " Ex.StackTrace.Substring(Ex.StackTrace.Length - 7, 7) "\r\n" "Error: " Ex.Message; Crashes.TrackError(Ex);
}
}
uj5u.com熱心網友回復:
您可以查看下面的問題,其中顯示了如何通過 whatsapp 共享文本和影像通過 Whatsapp 或 Facebook 共享影像和文本
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/361474.html
標籤:C# 安卓 android-studio xamarin xamarin.android
