Задача: из приложения отправить файл из файловой системы+текст в любое приложение, способное принять файл+текст.
Есть банальный код расшаривания некого документа (формат PDF) и текста. Написано под Xamarin, но суть та же, что в нативном коде:
public class ShareResult:IActionResult
{
public string FilePath { get; set; }
public string Text { get; set; }
public string Subject { get; set; }
}
var controller = new UIActivityViewController(GetShareParams(actionResult).ToArray(), null);
controller.SetValueForKey(NSObject.FromObject(actionResult.Subject), new NSString("subject"));
AppDelegate.NavigationController.PresentViewController(controller, true, null);
private IEnumerable<NSObject> GetShareParams(ShareResult actionResult)
{
if (!actionResult.Text.IsEmpty())
yield return new NSString(actionResult.Text);
if (!actionResult.FilePath.IsEmpty())
yield return new NSUrl(actionResult.FilePath, false);
}
Родное iOS приложение для работы с почтой появляется в списке и принимает и текст, и файл, и даже тему письма.
А вот Яндекс.Почта в списке доступных приложений почему то не появляется...