我在Boingo的Wi-Finder iOS应用程序中注意到,一旦他到达Boingo数据库中的访问点,应用程序就会向用户发送通知.该通知告诉用户他可以访问wifi网络.
怎么做iOS?
您可以使用CLLocationManager和UserNotifications来实现此目的。
您可以使用CLCircularRegion类(获取地理区域)或CLBeaconRegion类(获取信标区域)等区域监控服务,在用户跨越基于区域的边界时收到通知。如果即使您的应用程序未运行,也发生边界跨越,系统会自动在后台唤醒(或重新启动)它,以便它可以处理该事件。
在这种情况下,传递给应用程序委托的application(_:didFinishLaunchingWithOptions:)方法的选项字典包含UIApplicationLaunchOptionsKey.location。然后触发本地通知,以通知用户该位置可用的服务。
例子:-
注意。正如其他答案中所建议的,我们也可以使用可达性类。但如果应用程序处于后台或终止,则无法使用 Reachability。要在应用程序处于后台时触发可达性,我们可以按照以下步骤操作: https: //stackoverflow.com/a/35615381/4637057。但不幸的是,这里的缺点是,后台获取设置为应用程序工作的次数越多,使用的资源就越多。iOS 通过对经常尝试使用 API 的应用程序施加限制来保护自身和设备,因此在设置自定义时间间隔时要小心。此外,后台获取还会导致电池很快耗尽。
此外,仅当应用程序连接到该 wifi 网络时,Reachability 才能触发通知。但即使应用程序处于后台并且手机尚未连接到 WiFi,Boingo 也会通知用户。所以我强烈怀疑他们正在使用定位服务来检测用户是否进入了可用 wifi 的区域。
| 归档时间: |
|
| 查看次数: |
983 次 |
| 最近记录: |