【问题标题】:Xam.Plugin.Media doesn't pick photo from iOS galleryXam.Plugin.Media 不会从 iOS 画廊中挑选照片
【发布时间】:2026-02-14 01:50:01
【问题描述】:

我将 Xam.Plugin.Media 用于我的项目。它在 android 版本中完美运行,但在 iOS 中......它使用 buttonClick 打开图库,但我无法选择照片,它们就像不可选择。你有什么想法吗?

这是我的代码:

        await CrossMedia.Current.Initialize();

        if (!CrossMedia.Current.IsPickPhotoSupported)
        {
            return;
        }
        try
        {
            file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions { PhotoSize = PhotoSize.Medium });

            if (file == null)
            {
                return;
            }
            
            alert = UIAlertController.Create("Info", file.Path.ToString(), UIAlertControllerStyle.Alert);
            alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
            PresentViewController(alert, true, null);            
        }
        catch (Exception ex)
        {
            alert = UIAlertController.Create("Info", ex.ToString(), UIAlertControllerStyle.Alert);
            alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
            PresentViewController(alert, true, null);
        }

编辑:我在真实设备上测试过,效果很好。但我不知道为什么它在模拟器上不起作用。

【问题讨论】:

  • 权限好吗?并且这个包已经合并到Essentia
  • 是的,我实现了对 info.plist 的权限。我会在尝试 Essentials MediaPicker 后提供反馈 :)
  • 你是在ios模拟器还是真机上测试。
  • 在 iOS 模拟器 iPhone 11 (14.5) 上测试。有什么方法可以在真机上测试吗?
  • 将 iphone 连接到 mac 并将模拟器切换到您的设备 ID?

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


【解决方案1】:

试试下面的代码看看它是否有效。

if (CrossMedia.Current.IsPickPhotoSupported)
    var photo = await CrossMedia.Current.PickPhotoAsync();

我在模拟器上测试它,它工作正常。

加号

确保您的 info.plist 看起来像: 如果是,请尝试创建一个新的示例应用程序来测试或使用 必须了解它的进展情况。

【讨论】:

  • 感谢您的回答。我也可以在模拟器上实现画廊。但是无法在 imageView 中选择并显示它。我无法点击模拟器上的图像。
  • 我编辑了一些建议的答案,你可以试试