Я делаю приложение xamarin для iphone и имею проблему. Внизу мой класс, который я использовал для openFile из потока. Это файл Excel. Я получаю файл и открываю диалог - как во вложении. Когда я нажимаю кнопку, чтобы сохранить файл или открыть в Excel, иногда я получаю новый диалог с местами для сохранения файла или открытия приложения Excel, но иногда диалоговое окно для сохранения файла и Excel не открывается,
хотя поток не пустой. Каждый раз, когда я отлаживаю путь один и тот же.
Есть идеи, почему это не работает каждый раз?
введите описание изображения здесь
public void OpenFile(Stream fileStream)
{
if (fileStream == null || fileStream.Length == 0)
{
throw new Exception("File download error");
}
using (fileStream)
{
var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var filename = Path.Combine(documents, "Report " + DateTime.UtcNow.ToShortDateString() + ".xls");
File.WriteAllBytes(filename, fileStream.ReadAsBytes());
var viewer = UIDocumentInteractionController.FromUrl(NSUrl.FromFilename(filename));
var controller = GetVisibleViewController();
viewer.PresentOpenInMenu(controller.View.Frame, controller.View, true);
}
}
private static UIViewController GetVisibleViewController(UIViewController controller = null)
{
controller = controller ?? UIApplication.SharedApplication.KeyWindow.RootViewController;
if (controller.PresentedViewController == null)
return controller;
if (controller.PresentedViewController is UINavigationController uinav)
{
return uinav.VisibleViewController;
}
if (controller.PresentedViewController is UITabBarController uitab)
{
return uitab.SelectedViewController;
}
return GetVisibleViewController(controller.PresentedViewController);
}