如何在没有用户交互的情况下禁用wifi协助

我有几个URL必须通过wifi而不是移动数据来调用(以编程方式)。

WIFI ASSIST打开时,只要wifi很弱,数据包就会通过移动数据传输。

我想阻止这种情况发生。

据我所研究, 没有API以编程方式打开和关闭wifi辅助开关

我可以在Reachability Class的帮助下找到用户是否有移动数据和wifi,我相信我可以提醒用户保持wifi协助关闭,但这是一个非常糟糕的用户体验。

所以我决定看看它是否可以在iOS移动配置文件的帮助下完成。

但我在Apple配置文件参考中找不到与wifi-assist相关的任何键。

所以我想知道,是否有可能强制wifi用于某些URL。

我记得VPN ON DEMAND可以实现这一点,我们可以通过VPN访问某些域。

我想知道wifi是否也可以通过配置文件

欢迎任何建议。

正如其他人所提到的,在iOS中无法以编程方式操作此设置。 这不是你要问的,因为你似乎已经知道答案是“不”。

您在询问配置文件,因此我假设这些是受管设备。 不幸的是,我没有意识到配置文件有效负载会强制受管设备禁用Wi-Fi Assist。

不过,我相信你的意图与被问到的意图有点不同。 我认为你基本上有一个应用程序可以与只能通过Wi-Fi网络(可能是企业Wi-Fi网络)访问的资源进行通信。 如果应用尝试在蜂窝电话上连接到资源,则无法连接。 在某些情况下,当Wi-Fi信号较弱时,设备会尝试提供帮助并切换到蜂窝电话,从而导致应用程序出现问题。 如果我们能够找到一种方法来强制iOS在您的应用运行时不利用Wi-Fi Assist,那么您将处于良好状态。

如果您可以将此应用程序安装为托管应用程序,则可以确定应该只允许应用程序在Wi-Fi连接上运行。 将网络使用规则AllowCellularData设置为false应执行此操作(有关详细信息,请参阅AllowCellularData )。 我不确定这个解决方案的一个原因是,当Wi-Fi Assist打开并处于活动状态时,这是否会导致连接失败,或者当应用程序运行时,iOS是否更喜欢不使用Wi-Fi协助,因为它无法通过手机连接。 所以我认为你可以告诉一个应用程序只通过WiFi连接,但它并没有真正为你的用户体验问题提供更好的解决方案。 唯一认为它真正购买的是你的应用程序连接在连接到手机时不会尝试连接。 但是,如果您将应用程序包ID的此值更改为false,则可能会阻止在应用程序运行时启用Wi-Fi Assist。 我无法访问MDM来试用它,但你可以测试一下。

最终,鉴于这可能是企业设备的情况,我认为您将不得不通过用户培训来解决这个问题。 好消息是,这是一次性的。 当然,当Wi-Fi信号较弱但信号信号较强时,用户可能会略微降低网络性能。 如果这些企业应用程序主要仅在公司的Wi-Fi网络上运行,那么这并不重要。

另一种解决方案是您提到的,基本上使用按需VPN来提供与内部资源的连接。 这是额外的基础设施工作,你已经提到了它,所以我不确定它是否是一个选项。

显然,另一种解决方案是通过防火墙暴露网络资源,这可以让您通过蜂窝网络访问它。 我怀疑由于安全限制,这是不可能的。

不幸的是,这个领域没有很多好的选择。 但是,希望有一些方法可以做到这一点,因为Sonos似乎做了一些事情,允许他们的应用程序避免在流式传输到本地网络资源时切换到WiFi Assist: https : //sonos.custhelp.com/app/答案/细节/ A_ID / 4257 /〜/ Wi-Fi的协助和-SONOS

我想知道你是否可以让你的应用程序打开到固定本地网络资源的流音频连接,这会导致它使用Wi-Fi。 这是一个非常疯狂的黑客攻击,但是如果具有足够低的比特率音频文件流,它可能会满足您的需求而不会占用过多的网络吞吐量。

根据Apple 关于Wi-Fi Assist的说明 :

  • 如果您正在进行数据漫游,Wi-Fi Assist将不会自动切换到蜂窝网络。
  • Wi-Fi Assist仅在您在前台运行应用程序时才有效,并且不会通过内容的后台下载激活。
  • Wi-Fi Assist不会激活某些传输音频或video的第三方应用,也不会下载附件(如电子邮件应用),因为它们可能会使用大量数据。

当然,您可以考虑的另一个可能的解决方案是改善您的Wi-Fi覆盖范围,使信号不会变得足够糟糕,无法满足Wi-Fi协助。 我知道这可能不太可行,但想把它放在那里。

祝你好运!

没有允许您启用/禁用“Wi-Fi Assist”的公共API,即使您找到了一种方法,您的应用也会被拒绝。

不,您无法通过编程方式启用或禁用WiFi,并且没有此function的API。