时间:2021-05-19
从 iOS9 起,新特性要求 App 访问网络请求,要采用 HTTPS 协议。但是能不能判断开发者是否允许 HTTP 的请求,这样就不会在发起请求时候失败同时弹出以下信息:
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
这个需求其实是最近在弄 HTTPDNS 相关的一些东西,只能通过 HTTP 接口请求,但是希望能判断应用是否允许了 HTTP 的访问,如果允许才开启 HTTPDNS 相关的功能。
解决方法比较简单,其实就是读取 info.plist 看看 NSAppTransportSecurity 是否为YES。
Objective-C 实现
- (BOOL)isHTTPEnable { if([[[UIDevice currentDevice] systemVersion] compare:@"9.0" options:NSNumericSearch] != NSOrderedAscending){ NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; return [[[infoDict objectForKey:@"NSAppTransportSecurity"] objectForKey:@"NSAllowsArbitraryLoads"] boolValue]; } return YES;}使用方法:
if ([self isHTTPEnable]) { NSLog(@"HTTP enable");} else { NSLog(@"HTTP disable");}Swift 实现
func isHTTPEnable() -> Bool { let flag = UIDevice.currentDevice().systemVersion.compare("9.0.0", options: NSStringCompareOptions.NumericSearch) if (flag != .OrderedAscending) { guard let infoDict = NSBundle.mainBundle().infoDictionary else { return false } guard let appTransportSecurity = infoDict["NSAppTransportSecurity"] else { return false } guard let allowsArbitraryLoads = appTransportSecurity["NSAllowsArbitraryLoads"] else { return false } guard let res = allowsArbitraryLoads else { return false } return res as! Bool } return true}使用方法:
if self.isHTTPEnable() { print("HTTP enable")} else { print("HTTP disable")}原文链接:http://blog.yourtion.com/is-ios-app-enable-http.html
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Android编程判断当前应用是否在后台运行的方法。分享给大家供大家参考,具体如下:/**判断程序是否在后台运行*/publicstaticboo
我就废话不多说了,还是直接看代码吧!/***判断应用是否已经启动**@paramcontext上下文对象*@parampackageName要判断应用的包名*@
本文实例讲述了Android开发实现根据包名判断App运行状态的方法。分享给大家供大家参考,具体如下:前面讲过Android开发判断一个app应用是否在运行的方
本文实例讲述了Android开发判断一个app应用是否在运行的方法。分享给大家供大家参考,具体如下:在一个应用中,或一个Service、Receiver中有时候
手机的一些功能和华为的应用时相关联的,为确保手机正常使用,华为的基本应用是无法卸载的。可以尝试如下方法判断一下是否可以卸载: 1、菜单“设置、应用程序”,找到