Cordova 相机插件 IOS 11 无法从库中选择图像

Posted

技术标签:

【中文标题】Cordova 相机插件 IOS 11 无法从库中选择图像【英文标题】:Cordova camera plugin IOS 11 impossible to pick image from library 【发布时间】:2018-05-11 21:02:39 【问题描述】:

我正在使用ionicXcodecordova-plugin-camera 访问我的iphone 库。它在 ios 11.1.2 上运行。

我想所有授权都已设置,但是当我从我的图像选择器库中单击图片时(图像选择器正在显示),我收到了这个错误:

发现扩展时遇到[discovery] 错误:Error Domain=PlugInKit Code=13 "query cancelled" UserInfo=NSLocalizedDescription=query cancelled

关注这个话题: PhotoPicker discovery error: Error Domain=PlugInKit Code=13 看来这可能是缺少权限错误。

如下所示,Info.plist 已设置,我找不到错误在哪里,有什么想法吗?

// FUNCTION TO OPEN MY IPHONE'S LIBRARY AND SELECT A PIC

$scope.takePic = function()

    navigator.camera.getPicture(
    function(uri)
        //console.log(uri);
    ,

    function()
	   $ionicPopup.alert(
	         title: 'Error',
	         template: 'Impossible'
	         );
    ,
    
    	destinationType: 1,
    	sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
    	allowEdit: false,
    	saveToPhotoAlbum: false,
    	quality: 30,
     
     );

;
<!--LINES ADDING IN MY CONFIG.XML TO SET THE INFO.PLIST FILE -->

<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge">
    <string>need camera access to take pictures</string>
</edit-config>

<edit-config target="NSPhotoLibraryUsageDescription" file="*-Info.plist" mode="merge">
    <string>need to photo library access to get pictures from there</string>
</edit-config>

<edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge">
    <string>need location access to find things nearby</string>
</edit-config>

<edit-config target="NSPhotoLibraryAddUsageDescription" file="*-Info.plist" mode="merge">
    <string>need to photo library access to save pictures there</string>
</edit-config>

<!-- BUTTON THAT IS CALLING THE FUNCTION -->

<button ng-click="takePic()" style="font-weight:300;border-radius:10px 10px 10px 10px;" class="button button-positive button-block">Take picture</button>

【问题讨论】:

我也有同样的问题。 你找到解决办法了吗? 【参考方案1】:

遇到完全相同的问题。阅读文档,它指定:

NSPhotoLibraryUsageDescription 虽然此键控制对用户照片库的读写访问权限,但如果您的应用只需要向照片库添加资源而不需要读取任何资源,则最好使用 NSPhotoLibraryAddUsageDescription。

所以从技术上讲,只使用 NSPhotoLibraryUsageDescription 就足够了。尝试删除 NSPhotoLibraryAddUsageDescription 但这并没有什么不同,无论有没有它,我仍然收到相同的错误消息。

【讨论】:

是的,因为我已经发布了这个问题,不幸的是这个问题仍然存在......最后我决定使用相机拍照而不是使用用户的图书馆。现在它会工作,它只是用一张图片来设置一个头像。如果我最终找到了解决方案,我会告诉你,希望你也这样做,谢谢;) 你找到解决办法了吗? 你回去尝试使用图书馆了吗?还是只使用相机?

以上是关于Cordova 相机插件 IOS 11 无法从库中选择图像的主要内容,如果未能解决你的问题,请参考以下文章

我想让用户选择使用相机拍照或从库中挑选照片(ios-swift,apple example-foodtracker)

Android - 如何从相机捕获图像或从库中添加

社交分享 Cordova 插件

拍照或从库中获取图像的权限未在 iOS 9 中显示(Xcode 7beta,Swift 2)

cordova无法删除ios插件的解决办法

科尔多瓦相机插件在 ios 8.1 中不起作用