带有xam.Plugin.Media的iOS 10上的相机问题

时间:2016-09-21 13:35:50

标签: ios iphone ipad

我正在使用Xam.Plugin.Media(版本:2.3.0)和Xamarin Forms for iOS。 它与iOS-10的iPhone配合工作正常,但当应用程序在iOS-10的IPad上运行时,相同的代码会从应用程序中解脱出来。

早些时候,在iOS-9上,它与iphone和ipad都运行良好。 我期待你的回复。 感谢

using Plugin.Media;
using System;
using System.Collections.Generic;
using System.Text;
using Xamarin.Forms;
namespace LearnForms.Pages
{
public class pgOpenCamera: ContentPage
{
private Image image1 { get; set; }
public StackLayout StkPage { get; set; }
public Button btnOpenCamera { get; set; }

public pgOpenCamera()
{
btnOpenCamera = new Button()
{
Text ="Open Camera!"
};
btnOpenCamera.Clicked += BtnOpenCamera_Clicked;
image1 = new Image();
StkPage = new StackLayout()
{
VerticalOptions = LayoutOptions.FillAndExpand,  
HorizontalOptions = LayoutOptions.FillAndExpand,
Padding = new Thickness(20),
Children = {btnOpenCamera, image1}
};
Content = StkPage;
}

private async void BtnOpenCamera_Clicked(object sender, EventArgs e)
{
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported) 
{
DisplayAlert("No Camera", ":( No camera available.", "OK");
return;
}
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg"
});
if (file == null)
return;
DisplayAlert("File Location", file.Path, "OK");
image1.Source = ImageSource.FromStream(() =>
{
var stream = file.GetStream();
file.Dispose();
return stream;
});
} 
}
}

...卡奇

1 个答案:

答案 0 :(得分:1)

取自here

  

您的应用需要拥有NSCameraUsageDescription和NSPhotoLibraryUsageDescription的密钥才能访问设备的相机和照片库。当提示用户提供访问这些设备功能的权限时,将为用户显示为这些密钥提供的字符串。

所以我建议你将这些添加到Info.plist中。似乎是一种变化since iOS 10