使用Xamarin形式的iOS App中的Acr.UserDialogs与Progress Dialog有问题

时间:2018-05-03 19:38:46

标签: c# xamarin xamarin.forms xamarin.ios xamarin.android

我在使用xamarin表单iOS中的nuget包(Acr.UserDialog)显示进度条时遇到问题。使用相同的代码段,它在Android平台上运行良好。

using (UserDialogs.Instance.Loading("Loading", null, null, true, MaskType.Black)) {
    await Task.Run(() => {
        // Code Logic Goes here ...
    });
}

ACR UserDialogs Library的一个版本:

PCL项目 - v6.5.1

iOS项目 - v7.0.0

如果有人知道此问题的解决方案,请提供解决方案。

2 个答案:

答案 0 :(得分:0)

https://forums.xamarin.com/discussion/67832/implementing-file-picker-example-into-a-cross-platform-application

请检查以下内容:

var file = await CrossFilePicker.Current.PickFile();

if (file != null)
{
    var fileFullName = file.FilePath.Substring(file.FilePath.LastIndexOf('\\') + 1);
    var extension = Path.GetExtension(file.FileName).Substring(1);
    var fileName = Path.GetFileNameWithoutExtension("Pick_" + extension + "_File_" + DateTime.UtcNow.ToString("MMddyyyy_hhmmss"));


    using (Stream stream = file.GetStream())
    using (MemoryStream ms = new MemoryStream())
    {
        stream.CopyTo(ms);
        filePath = ms.ToArray().SaveAttachmentInLocalFolder(fileName, extension);
    }
    
}
   

答案 1 :(得分:0)

public async Task GetPdfDataAsync(byte[] fileBytes)
{
    try
    {
        var localPath = string.Empty;
        var fileName = Guid.NewGuid().ToString();
        localPath =
            Task.Run(() => _localFileProvider.SaveFileToDisk(fileBytes, $"{fileName}.pdf")).Result;
        if (string.IsNullOrWhiteSpace(localPath))
        {
            await PageDialogService.DisplayAlertAsync("Error loading PDF", "Computer says no", "OK");
            return;
        }

        if (Device.RuntimePlatform == Device.Android)
            Pdfviewsource = $"file:///android_asset/pdfjs/pdfjs/web/viewer.html?file={WebUtility.UrlEncode(localPath)}";
        else
        {
            Pdfviewsource = localPath;
        }

    }
    catch (Exception) {  }
}