当前位置: 首页 > 编程笔记 >

判断iOS应用是否开放HTTP权限的方法

燕超
2023-03-14
本文向大家介绍判断iOS应用是否开放HTTP权限的方法,包括了判断iOS应用是否开放HTTP权限的方法的使用技巧和注意事项,需要的朋友参考一下

从 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

 类似资料:
  • 本文向大家介绍android编程判断应用是否具有某个权限的方法,包括了android编程判断应用是否具有某个权限的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了android编程判断应用是否具有某个权限的方法。分享给大家供大家参考,具体如下: android在开发中有时候要判断应用中是否有某项权限,或者想获取到某个应用的权限清单,可以使用以下方法 1) 判断应用是否具有某个权限 2)

  • 本文向大家介绍VC判断进程是否具有administrator权限的方法,包括了VC判断进程是否具有administrator权限的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了VC判断进程是否具有admin权限的方法。是的话返回TRUE,否则为FALSE。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的VC程序设计有所帮助。

  • 本文向大家介绍javascript判断firebug是否开启的方法,包括了javascript判断firebug是否开启的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript判断firebug是否开启的方法。分享给大家供大家参考,具体如下: 经常用Firefox + Firebug调试JavaScript的朋友都知道,一但开启firebug,页面js的运行将显著变慢。

  • 本文向大家介绍iOS判断是否越狱设备方法示例,包括了iOS判断是否越狱设备方法示例的使用技巧和注意事项,需要的朋友参考一下 前言 苹果是非常看重产品的安全性的,所以给用户设计了一套复杂的安全机制。这让喜爱自由,崇尚一切开放的程序员们极度不爽,于是越狱就成了苹果和黑客们反复斗法的场所。总体来说,越狱可以让我们随意安装、共享应用,但确实也降低了设备的安全性,会给一些恶意应用提供方便之门。 有时我们的应

  • cmf_is_ios() 5.0.180626增加 功能 判断是否为ios访问 参数 无 返回 boolean

  • 本文向大家介绍iOS判断身份证号码是否正确的方法,包括了iOS判断身份证号码是否正确的方法的使用技巧和注意事项,需要的朋友参考一下 ①根据百度百科中身份证号码的标准实现该方法 ②该方法只能判断18位身份证,且不能判断身份证号码和姓名是否对应(要看姓名和号码是否对应,应该有大量的数据库做对比才能实现) ③直接copy这段代码,就能通过调用这个方法判断身份证号码是否符合标准,非常easy 以上就是本文