问题描述
我看过这个问答
但我正在努力寻找任何 API 来如何触发此弹出窗口以及如何检查是否授予访问权限(例如在 AVCapture
中,我可以检查 的授权状态AVMediaType
).
谢谢!
我确实打开了 DTS 请求并与 Apple 支持团队进行了转换.这是我在下面列出的一些重要部分.
如何检查是否授予访问权限
来自支持团队:
众所周知,没有这样的 API 来检查用户权限.
来自支持团队:
如果用户拒绝,则连接失败.它究竟是如何失败的取决于您使用的网络 API 以及您使用该 API 的方式.
- 默认情况下,连接将失败并显示
NSURLErrorNotConnectedToInternet
. - 如果您在会话配置上设置
waitsForConnectivity
,请求将等待事情改善.在这种情况下,您将收到-URLSession:taskIsWaitingForConnectivity:
委托回调告诉你这件事.如果用户改变主意并启用本地网络访问,然后连接将通过.
不幸的是,没有直接的方法来确定这种行为是否是本地网络隐私限制或其他一些结果网络故障.
如何触发这个弹窗
来自支持团队:
这里的问题是本地网络权限警报是由传出流量触发,您不会产生任何传出交通.解决这个问题的唯一方法是生成一些虚拟输出流量以触发此警报.
我见过其他开发人员遇到这种情况并且没有直接API触发本地网络权限警报相当恼人的.我鼓励您提交关于此的错误.
我一直在与本地网络隐私团队讨论这个问题以及我们当前针对您的情况的应用程序的建议 - 即,应用程序想要接收广播但不发送任何本地网络流量 -如下:
系统应该更好地处理这个问题.我们正在将此作为错误跟踪 rdar://problem/67975514.这不是固定在当前的 iOS 14.2b1 版本,但您应该继续使用 iOS 进行测试Beta 种子发布时.
与此同时,您可以通过发送消息来强制显示本地网络隐私警报.我们特别建议您发送大致相当于您尝试发送的消息的消息接收,因此在您的情况下,这意味着发送 IPv4 UDP 广播.
更新
对于 iOS 14.2 - 收到入站流量提示已修复.因此,您不需要下面的示例来模拟流量以触发提示.
这里是虚拟出站流量模拟的类:示例
该流量永远不会离开 iOS 设备,因此,即使界面处于休眠状态,不会唤醒它.即使它真的醒了界面,它的成本微不足道,因为你没有这样做一遍又一遍,只需要一次就可以触发本地网络隐私提醒.
I've seen this Q/A What triggers, but it's not what I want. I also read this Network privacy permission check, but there is no answer. I also search for any methods or classes which can help me here: Network, but no luck again.
There is a new dialog for the Local Network authorization, where user can Allow/Don't Allow "to find and connect to devices on your local network".
But I'm struggling to find any API for how to trigger this popup and how to check is access granted or not(for example in AVCapture
, I can check the authorization status for AVMediaType
).
Thank you!
I did open DTS request and had conversion with Apple support team. Here is some important parts which I included below.
How to check is access granted or not
From support team:
From support team:
How to trigger this popup
From support team:
UPDATE
For iOS 14.2 - prompt is received for inbound traffic FIXED. Because of this you don't need below example for simulating traffic to triggering prompt.
Here is class for dummy outgoing traffic simulation:example
这篇关于iOS 14 如何触发本地网络对话框并检查用户回答?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!