如何在 Cordova 中显示照片库权限对话框?

Posted

技术标签:

【中文标题】如何在 Cordova 中显示照片库权限对话框?【英文标题】:How to display photo library permissions dialog in Cordova? 【发布时间】:2015-11-26 05:05:00 【问题描述】:

您好,我们正在开发基于 IBM MobileFirst 平台的混合应用程序。在我们的应用程序中,我们正在访问用户图库(上传照片)。为此,在 iPhone 中我们需要明确询问用户权限,要在 iPhone 中询问用户权限,我们需要显示对话框。这里我的问题是我们要向用户显示的对话框是自定义对话框,还是 MobileFirst 中内置了任何本机功能,或者借助任何 cordova 插件?

【问题讨论】:

第一次尝试访问相机时,设备会询问用户,您不必担心或显示任何消息,由系统处理 【参考方案1】:

您可以在cordova-diagnostic-plugin 中使用requestCameraRollAuthorization() 请求本机ios 权限以访问用户照片:

cordova.plugins.diagnostic.requestCameraRollAuthorization(function(granted)
    console.log("Authorization request for camera roll was " + (granted ? "granted" : "denied"));
, function(error)
    console.error(error);
);

【讨论】:

【参考方案2】:

MobileFirst 不会为您处理任何权限 - 它不是那种框架。这确实与您应用中的 Cordova 层有关,它访问照片库。

您需要显示一个对话框,询问用户是否允许访问照片库。例如,您可以为此目的使用 WL.SimpleDialog。

在这里阅读更多:

http://docs.phonegap.com/en/3.3.0/guide_appdev_privacy_index.md.html#Privacy%20Guide Cordova Camera Plugin in IOS 9 也许要检查是否有访问权限,还可以创建一个 Cordova 插件,使用本机代码检查它:Determine if the access to photo library is set or not - phphotoLibrary (iOS 8)

【讨论】:

谢谢 Idan,这些信息对我帮助很大。 但是对于通知权限的小说明,我们还需要在 iphone 中添加任何 cordova 插件,或者只显示简单的对话框就足够了 权限由系统处理,当您第一次尝试使用需要它们的东西时,您不必担心它们或显示任何消息

以上是关于如何在 Cordova 中显示照片库权限对话框?的主要内容,如果未能解决你的问题,请参考以下文章

如何在需要使用 Xamarin.UITest 访问 iOS 上的照片的权限对话框中点击确定按钮?

Facebook Cordova 插件 - 共享照片(没有链接)导致空的共享对话框

如何在 Swift 的权限对话框中处理不允许选项

如何从另一个应用程序将图像共享到我的 Cordova/PhoneGap 应用程序?

如何在 Flutter 中请求和检查权限

Swift如何显示警报以请求照片库的权限?