Cordova/Ionic 2 相机权限问题 iOS 10.2.1

Posted

技术标签:

【中文标题】Cordova/Ionic 2 相机权限问题 iOS 10.2.1【英文标题】:Cordova/Ionic 2 camera permissions issues iOS 10.2.1 【发布时间】:2017-04-04 10:29:20 【问题描述】:

ios 上,我的应用检查使用相机的权限,然后如果一切正常,继续使用相机。

问题在于:

iOS 8:一切正常, iOS 10.2.1:我收到错误警报。

然而,该应用程序仍然允许我之后使用相机。

我在 iOS 上做错了什么?

为简洁起见,这是我简化的方法:

checkPermissionsForCamera() 
    this._Diagnostic.isCameraAuthorized().then(cameraIsAuthorised => 
        if (cameraIsAuthorised) 
            getPhoto(); // etc....
        
        else 
            this._Diagnostic.requestCameraAuthorization().then(cameraAuthorisationGranted => 
                if (cameraAuthorisationGranted.toLowerCase() == 'granted') 
                    getPhoto(); // etc....
                
                else 
                    alert('Please go to your device settings and enable camera permissions.');
                
            );
        
    );

仅供参考 - 我的 plist 文件中有这些键:

<key>NSCameraUsageDescription</key>
<string>This app requires camera access to function properly.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires photo library access to function properly</string>

【问题讨论】:

你用的是什么插件?能否提供本机代码获取权限? 我正在使用 Ionic Native Diagnostic 包装器,它使用 Cordova 诊断插件:ionicframework.com/docs/native/diagnostic 这些 cmets 都没有帮助,如果您有实际答案,请添加示例代码作为答案。 【参考方案1】:

事实证明,iOS 上的权限是一堆球,它们的行为并不明智。如果您之前拒绝访问某个权限,那么再次请求它实际上不会执行任何操作。所以你必须告诉用户手动去改变它。跛脚。

您可以将它们发送到设置屏幕:diagnostic.switchToSettings()

通过以下方式重置权限:

Settings -> General -> Reset -> Reset Location & Privacy

... 使应用请求新权限。

【讨论】:

以上是关于Cordova/Ionic 2 相机权限问题 iOS 10.2.1的主要内容,如果未能解决你的问题,请参考以下文章

Cordova / Ionic iOS 应用程序在加载插件时挂在启动屏幕上

在应用程序重新启动时,inappbrowser iOS 10 中的缓存 Cookie(clearcache=no;)不起作用 - Cordova/Ionic

任务执行失败:processDebugResources [ Cordova / Ionic ]

为啥 Google Maps Cordova ionic angular 仅在 Android 中工作而在 IOS 中为空白?

如何添加 Android 意图以在 Cordova/Ionic 项目中打开谷歌地图?

用于智能电视的 Cordova/ionic 应用程序