【问题标题】:How to open downloaded file in xamarin forms?如何以 xamarin 形式打开下载的文件?
【发布时间】:2016-10-03 10:33:03
【问题描述】:

在我的 Xamarin 表单中,我使用 Web 客户端在 Android 应用程序中下载了一个文件。它保存在本地文件夹中。 这将提到使用android通知如下代码

            webClient.DownloadFile(filePath, localPath);
            Notification.Builder builder = new Notification.Builder(Android.App.Application.Context)
.SetContentTitle("Download Successfully")
.SetContentText("Click here to open")
.SetSmallIcon(Resource.Drawable.abc_btn_colored_material);
            Notification notification = builder.Build();
            NotificationManager notificationManager =
Android.App.Application.Context.GetSystemService(Context.NotificationService) as NotificationManager;
            const int notificationId = 0;
            notificationManager.Notify(notificationId, notification);

我想从通知中打开下载的文件。我怎么能那样做。我是 Xamarin 的新手。请提出解决方案。

【问题讨论】:

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


    【解决方案1】:

    对于您的通知,您可以创建一个带有IntentPendingIntent,它对文件具有操作视图。这看起来像:

    var mimeTypeMap = MimeTypeMap.Singleton;
    var mimeType = mimeTypeMap.GetMimeTypeFromExtension(System.IO.Path.GetExtension(filePath));
    
    var intent = new Intent();
    intent.SetAction(Intent.ActionView);
    intent.SetDataAndType(Android.Net.Uri.Parse(filePath), mimeType);
    
    var pendingIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.OneShot);
    

    然后您将 Intent 设置在您的 Notification 构建器中:

    notification.SetContentIntent(pendingIntent);
    

    现在,您提供的文件路径Intent 必须位于 Android 上的所有应用程序都可以访问的位置,否则打开它将失败。因此,当您保存文件时,请将其保存到公共场所的外部存储中。

    【讨论】:

    • new Android.Net.Uri(filePath) 显示无法创建接口Uri抽象类的实例
    • 对不起,应该是Uri.Parse(filePath)
    【解决方案2】:

    我用这个

    var docSaved = await DisplayActionSheet("Saved", "Open", "Ok", "File was successfull);
       switch (docSaved)
       {
             case "Open":
             {
                 Device.OpenUri(new Uri(Your_FilePath));
                 break;
             }
             case "Ok":
             {
                break;
             }                   
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2020-11-04
      • 2020-07-19
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      相关资源
      最近更新 更多