我正在尝试寻找某种方式来选择表单中的照片,而无需在iOS和Android中编写平台特定的代码。
答案 0 :(得分:0)
您可以使用NuGet的软件包xam.Plugin.Media
。
//...
using Plugin.Media;
//...
async void Button_Clicked(object sender, System.EventArgs e)
{
await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
await DisplayAlert("No Camera", ":( No camera available.", "OK");
return;
}
var file = await CrossMedia.Current.PickPhotoAsync();
if (file == null)
{
return;
}
else
{
await DisplayAlert("File Location", file.Path, "OK");
}
}
不要忘记添加Privacy
在iOS中(info.plist)
<key>NSCameraUsageDescription</key>
<string>This app needs access to the camera to take photos.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app needs access to photos.</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app needs access to microphone.</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>This app needs access to the photo gallery.</string>
在Android
如果您的用户正在运行棉花糖,则插件将自动提示他们输入运行时权限。您必须将权限插件代码添加到您的主要活动或基础活动中:
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
{
Plugin.Permissions.PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
有关更多详细信息,您可以访问here