我正在编写一个iOS客户端应用程序,该服务器向服务器发送请求,该服务器转身并请求通过外部MDM(AirWatch)将更新的配置文件推送到我的设备。我相信个人资料会显示在Settings -> General -> Profiles
中。当MDM完成处理配置文件推送(发送或排队,我不确定)时,它会响应主叫服务器说“是推送配置文件”,它回应了我对客户端应用程序的响应。
问题是,在设备上实际推送/安装配置文件大约需要30秒,而Web服务响应要比这短得多。所以我的客户端应用程序认为已经安装了配置文件,并且它允许应用程序在配置文件仍然不可用时继续。我希望能够检测到配置文件何时成功推送到我的设备,并且不允许应用程序继续,直到之后。我的另一个选择是弹出一个说成功推送配置文件,但我仍然需要检测正在安装的配置文件。
关于stackoverflow的2013 Q& A大部分似乎都说不可能查询配置文件,但我想知道是否有人最近尝试过的解决方法。我想到了以下可能性 - 但我不知道哪个是首选,或者甚至可以使用iOS7(截至2014年12月12日)。
registerForRemoteNotificationTypes
/ didReceiveRemoteNotification
或didFinishLaunchingWithOptions
作为一个说明,我查看了以下链接以及更多内容:
提前致谢!
答案 0 :(得分:4)
您的应用无法确定是否已安装配置配置文件,因为不存在允许应用查询其已安装配置文件的(公共)API,您是否也无法确定是否已安装MDM推送通知已发送到设备。您必须依靠MDM(AirWatch)确定已安装配置文件。
当AirWatch将配置文件推送到设备时,它将收到已安装配置文件的确认,但直到AirWatch重新查询所有已安装的配置文件,它才会报告该配置文件已安装。我所看到的是,在AirWatch发送配置文件安装命令后不久,它将重新查询设备上的配置文件列表,因此可能只需轮询服务器几次并等到您看到配置文件已安装。我没有在AirWatch REST API中花费太多时间,但我认为这是可能的。
除此之外,我能看到的唯一其他选项是你可以使用Reachability来检测是否正在设置VPN隧道。