ios – 如何判断用户是否为我的应用关闭了手机数据?

前端之家收集整理的这篇文章主要介绍了ios – 如何判断用户是否为我的应用关闭了手机数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
虽然我的应用程序可以在没有任何互联网连接的情况下使用,但它可以与Web服务器交换数据(以显示一些用户统计信息).因此,我将该应用宣传为“无需互联网连接”.一些用户随后关闭了我的应用程序的移动数据,这应该是完全正常的.但是当我的应用尝试交换数据时,这些用户会被“关闭[应用名称]关闭蜂窝数据”.对话.

这对他们来说是一种烦恼,我想阻止这些对话并简单地跳过整个数据交换的事情.

Apple’s Reachability Sample Code.

但是虽然我关闭了整个设备的WiFi和应用程序的移动数据,但Reachability确认了一个积极的互联网连接.更具体地说,它报告

Reachability Flag Status: WR t------ networkStatusForFlags

无论我是否激活了细胞数据.当然,当蜂窝数据关闭时,实际上没有互联网连接可用,因此数据交换失败.但无论如何,用户都会看到蜂窝数据对话框.

有没有办法检测iOS 7和iOS 8上的互联网连接是否可用,考虑到特定应用程序的蜂窝数据设置 – 所有这些都不会再次通过蜂窝数据对话框窃听用户

我的应用程序目前没有任何设置面板,所以我想避免设置(第二个应用程序内)开关“不要使用手机数据”.此外,我不想将数据交换限制为WiFi连接,因为每个会话只有2 KB的数据,这对大多数用户来说并不是一件大事.

解决方法

我认为iOS8中唯一受支持的方式是将Ping发送到已知服务器并使用警报面板对用户造成几次错误.在iOS8上,Apple仅显示面板两次,即使应用程序重新启动也会跳过它,也许它会在一天之后再次出现. (这对广告支持的应用程序来说真是个坏消息.)

Apple说(https://devforums.apple.com/message/1059332#1059332):

Another developer wrote in to DTS and thus I had a chance to
investigate this in depth. Alas,the news is much as I expected:
there is no supported way to detect that your app is in this state.
Nor is there a way to make a “no user interaction” network connection,
that is,request that the connection fail rather than present UI like
this.

以下文章提出了使用ping的方法

http://www.splinter.com.au/how-to-ping-a-server-in-objective-c-iphone/

http://elbsolutions.com/projects/reachability-with-simpleping-wrapper/

原文链接:https://www.f2er.com/iOS/333151.html

猜你在找的iOS相关文章