问题标签 [ios-permissions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
497 浏览

ios - HealthKit permissions, are they needed both from WatchOS AND iOS?

Are HealthKit permissions needed from BOTH iOS and WatchOS?

I'm requesting authorization from watchOS which in-turn guides user to open the iOS app to acquire permissions. To transfer information I am using WatchConnectivity by creating a WCSession between the two devices.

Is it enough to present permissions from watch only?

0 投票
1 回答
2294 浏览

permissions - 简化 iOS 11 中的位置权限提示

我的应用需要“始终”位置权限。如果应用程序直接要求“总是”,Apple 会复杂的位置权限选项,所以我开始要求“使用时”,然后是“总是”。这为用户提供了第一个对话框,用于“使用时”,带有“不允许”和“允许”按钮,这很棒。但是,我希望下一个对话框具有这些相同的按钮(假设它们允许“使用时”),并且我在升级到 iOS 11 Beta 5 之前得到了这个(我不确定 - 我可能跳过了几个贝塔)。

在 iOS 11 Beta 5 中,即使已经授予“使用时”权限,我也会看到复杂的按钮文本(例如“使用应用程序时”和“始终”而不是“不允许”/“允许”)。

我想给用户更简单的选择。我认为用户阅读这些权限对话框的频率与阅读 EULA 的频率一样,如果这不是一个简单的允许/不允许,大多数人只会选择一个随机选项而不是阅读,我的应用程序将没有它的权限需要。

最新的 iOS 11 Beta 可以做到这一点吗?在最终的 iOS 11 中是否有可能?我认为这就是 Apple 的建议 - 这里有一些建议(来自https://m.rover.io/wwdc-2017-update-significant-updates-to-location-permissions-coming-with-ios-11-41f96001f87f) :

对于那些始终寻求权限级别的人,Apple 现在推荐一种新的权限流程,该流程本质上是一个两阶段的方法。第一阶段或初始入职,应该只要求“使用时”权限......

0 投票
0 回答
161 浏览

ios - 如何防止 IOS 应用程序在更改权限后重置(例如麦克风、相机、照片)?

我的问题类似于“如何防止 iOS 应用在更改相机权限后重置? ”。但我不太明白答案。

我通过代码设置麦克风权限如下:

-(BOOL)canRecord { __block BOOL bCanRecord = NO;
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];

}

然后通过单击状态栏中的返回键返回我的应用程序,我的应用程序将强制刷新,我将失去我在应用程序中的位置。

我正在使用运行 IOS 9.3.3 的 iPhone5。

0 投票
1 回答
122 浏览

ios - 如果他们仍然拒绝,请偶尔请求 iOS 权限

在我的 iOS 应用程序中,我有一些需要用户许可的东西。例如:接收推送通知的权限。

我想不时要求这些用户启用权限,直到他们批准为止。我不想每次用户启动应用程序时都询问。

我有打开应用程序设置的功能,用户可以在其中启用通知

我考虑过存储最后一次权限请求的日期以及每次应用程序启动时 - 检查用户上次被要求权限的天数。我不知道为什么,但这对我来说似乎并不优雅。

你能建议更优雅的方法来解决它吗?

0 投票
1 回答
2036 浏览

ios - 在哪里可以找到 iOS 应用程序权限的完整列表?

在哪里可以找到 iOS 应用程序权限的完整列表?

对于 android,您可能会找到正常和危险权限的完整列表,应用程序可以使用哪些权限:https ://developer.android.com/guide/topics/permissions/requesting.html

我当然知道 iOS 的“危险”权限,它们显示在设置>隐私中。但我也对不受用户影响的正常设置感兴趣。

我认为对于开发人员来说,应该有一个类似 android 的列表。还是系统完全以另一种方式工作?那么我在哪里可以了解到这一点呢?

我为什么要问?对于我的学位,我正在研究用户现在是否在智能移动设备中收集了哪些数据。因此我需要一个参考。

0 投票
4 回答
31587 浏览

ios - iOS 11 和 iOS 10 位置权限问题

我在使用 iOS11 时向用户请求位置权限时遇到问题,我的 info.plist 包含

我有两张地图,一张给客户,一张给员工。对于员工我需要知道他们的位置,即使应用程序没有运行或后台运行(他们可以在退出时将其关闭)并使用请求权限

locationManager.requestAlwaysAuthorization()

对于客户,我只需要在应用程序使用时的位置并使用请求权限

locationManager.requestWhenInUseAuthorization()

在 iOS 11 中,这仅在使用时请求权限,而不是始终开启权限。

在 iOS 10 中,它具有正确的行为。

我想要的行为如下:当他们是客户(未登录)时,它只要求何时使用许可。如果他们登录(员工),即使不使用它也会请求位置。

如果有人能阐明我错过/做错了什么,将不胜感激。

如果我删除权限NSLocationAlwaysUsageDescriptioniOS10 和 iOS11 有相同的问题,即不总是请求权限,请注意一些事项。

再澄清一点。我已经实现了 didChangeAuthorization 委托函数,当用户允许调用警报权限时调用它,requestWhenInUseAuthorization() 但是当我requestWhenInUseAuthorization()在位置管理器上调用函数时,未调用委托方法,就像它从未接收到该调用并且没有向用户。

0 投票
0 回答
587 浏览

ios - 初始屏幕后面的 Xamarin IOS 权限对话框

我有一个 Xamarin IOS 项目,我想创建本地通知。为此,我必须征求用户的许可。我在 AppDelegate 中有这段代码:

到目前为止,这有效,但不幸的是,请求权限的对话框位于初始屏幕后面。因此,它会像应用程序被卡住一样寻找用户。如果他单击主页按钮,那么他可以看到权限对话框。

我还尝试将它放在 ViewDidLoad 或 ViewDidLayoutSubviews 方法中的第一个视图中。但效果是一样的。

如何正确显示对话框?

0 投票
1 回答
2730 浏览

ios - 重新安装应用后的 iOS 位置权限

我正在使用 Crashlytics 进行内部应用程序测试,并注意到一件有趣的事情。我在我的应用程序中使用地理定位并请求用户的权限。当客户第一次安装应用程序时,他会看到弹出的默认 Apple 地理定位权限。一切正常。但是,如果用户从手机中删除应用程序并重新安装......在这种情况下,当我请求权限时,弹出窗口不会出现但地理位置正在工作。如何?这是某种新功能还是 iOS 问题?我正在使用 iOS 11.0.3 进行测试。我在文档中没有找到任何内容,并且在以前的 iOS 版本中也没有看到这种行为。看起来 iOS 只是记住了应用程序并在我请求用户权限而不是显示弹出窗口时自动启用地理定位。也许有人对此有答案?

0 投票
2 回答
388 浏览

ios - 如何检查用户是否在 NSLocationAlwaysAndWhenInUseUsageDescription Swift 3.2 上单击否

当用户开启时MainViewController

viewDidLoad()将运行并出现警报

在此处输入图像描述

主要问题是,如果用户单击不允许,我如何以编程方式检查?例如

0 投票
0 回答
883 浏览

ios - iOS 应用扩展:请求权限

我正在编写一个集成应用程序工具,它​​将在现实世界中测试我们的 SDK 的功能,并且我计划使用 iOS Action App 扩展作为子流程来启动 Action Extensions 作为测试用例。我按照下面的文章完成了

https://ianmcdowell.net/blog/nsextension/

所以到目前为止我创建了一个操作扩展,用于测试启动 SDK 的库管理器。它在模拟器上工作,但在设备上测试时测试失败,因为它需要位置服务来运行 SDK。

我可以覆盖该服务,但 Xcode 会生成抱怨未访问 NSUserDefaults 的日志。这增加了 30 秒的测试时间,所以我宁愿避免这种情况

这是我的代码。希望您能为我提供一些关于我缺少哪些内容并且需要添加以获得权限的指导。

这是 .plist 文件。请注意,操作扩展是由应用手动触发的非 UI 扩展。应用程序组也在应用程序和扩展程序上启用