iOS设置自定义UA [NSUserDefaults standardUserDefaults] registerDefaults:@{ @UserAgent:
【通常做法】
APP 内访问web view,通常需要带自定义UA,那么一般可以通过这个办法设置自定义UA
/* !!!: set UserAgent* 问题: 创建 NSMutableURLRequest 实例、设置 User-Agent,调用 UIWebView 的 loadRequest: 方法后,User-Agent 被系统替换;* @see http://www.mphweb.com/en/blog/easily-set-user-agent-uiwebview*/
+ (void)initialize {if (self == [WebViewController class]) {[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"UserAgent": [self userAgentWithWebView:[UIWebView new]] }];}
}
【特殊需求】
有些时候,考虑到兼容性,只对某些webview 实施自定义UA。那么,上面的办法显然不行了。+ (void)initialize在类创建的时候,只执行了一次。也就是所有的webview都带有自定义UA。那么,针对某一个webview实施自定义UA可以这么弄。这几个方法一定要是静态方法,要不然设置UA不生效。
NSString* defaultUserAgent = nil;/*
获取默认的UA,用于恢复UA
*/
+ (void)initialize {if (self == [WebViewController class]) {defaultUserAgent = [[UIWebView new] stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];}
}/*在默认UA后追加自定义UA*/
+ (void)registeCustomizeWebViewUserAgent {UIDevice *device = [UIDevice currentDevice];NSString *iOSName = [device systemName];NSString *iOSVersion = [device systemVersion];NSString *customizeUserAgent = [NSString stringWithFormat:@"xxxxxMobile/%@ (Platform/%@; %@/%@)", APP_SHORT_VERSION, @"iPad", iOSName, iOSVersion];NSString *webViewUserAgent = [[UIWebView new] stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];customizeUserAgent = [webViewUserAgent stringByAppendingFormat:@" %@", customizeUserAgent];if (customizeUserAgent) {[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"UserAgent": customizeUserAgent}];}
}
- (void)dealloc {/*由于自定义的userAgent无法播放webview的视频,所以。当webview销毁的时候,重置一下userAgent*/[[self class] recoverDefaultUserAgent];
}+(void) recoverDefaultUserAgent{if (defaultUserAgent) {[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"UserAgent": defaultUserAgent}];}
}
iOS设置自定义UA [NSUserDefaults standardUserDefaults] registerDefaults:@{ @UserAgent:相关推荐
- iOS 设置自定义间距的文字下划线
网上看到很多用NSAttributedString的NSUnderlineStyleAttributeName来设置的,方法很简便,网上也很多,就不发了. 效果如下: 下划线和文字没有间隔,贴在一起的 ...
- iOS设置UIWebView的UserAgent
接入第三方时,别人又需求,要求传入我们的信息. // 获取 iOS 默认的 UserAgent,可以很巧妙地创建一个空的UIWebView来获取:NSString *userAgent = [[[UI ...
- iOS 设置字体 自定义字体
iOS 设置字体 自定义字体 分类: iOS2012-12-21 16:33 1062人阅读 评论(0) 收藏 举报 1.网上搜索字体文件(后缀名为.ttf,或.odf) 2.把字体库导入到工程的re ...
- scrapy 设置随机UA
爬虫过程中的反爬措施非常重要,其中设置随机 User-Agent 是一项重要的反爬措施,Scrapy 中设置随机 UA 的方式有很多种,有的复杂有的简单. 1.常规设置 UA 首先,说一下常规情况不使 ...
- java 微信自定义菜单开发_微信公众号开发之设置自定义菜单实例代码【java版】...
本实例是为了实现在管理后台实现微信菜单的添加删除管理. 1.首先我们需要新建一个数据库表用于存放menu菜单项 可包含的字段有id.父类id.name.排序.是否显示.类型(view.click).链 ...
- Qt for ios 设置程序图标(logo)和启动页(splash)
前言 Qt开发ios程序,要面临的一个问题就是设置程序图标和启动页的问题,作为一个跨平台开发者,对原生开发本身就不太熟悉,即便是这种小功能也可能会成为阻碍,没办法, 只能硬着头皮上咯. 要设置ios的 ...
- android极光推送声音,【极光推送】iOS APNS 自定义铃声
IOS APNS自定义推送铃声 是推送给苹果服务器时 将 推送的 key = sound 的value = @"custom.xxx".自定义铃声支持几种固定的格式.本人只以.ca ...
- ios 系统状态栏样式修改_超简单!!! iOS设置状态栏、导航栏按钮、标题、颜色、透明度,偏移等...
原标题:超简单!!! iOS设置状态栏.导航栏按钮.标题.颜色.透明度,偏移等 1. 要实现以下这些效果都非常简单 2. 废话不多说,先看看实现效果 3. 下面告诉你我为什么说实现这些效果非常简单 比 ...
- iOS 设置View阴影
iOS 设置View投影 需要设置 颜色 阴影半径 等元素 UIView *shadowView = [[UIView alloc] init];shadowView.frame = CGRectMa ...
最新文章
- Docker核心技术之Docker Compose
- #pragma pack 内存对齐
- redis源码笔记-endian
- JVM内存状况查看方法和分析工具
- .pyc文件_python专题shutil高阶文件操作
- 50、Power Query-Text.Contains的学习
- C#之基本知识和语法3 - 数据类型
- 整理blog,回味过去的点滴
- MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什么区别?各适用于什么场合?...
- 020303阶段三 I/O复用 select和epoll的文件描述符管理
- Druid配置文件demo
- 钉钉微应用接入钉钉免登陆配置记录。NET实现
- python处理金融数据_python-金融数据处理demo
- Hive——元数据表含义
- 免费课程:Java高级教程-项目部分视频——私塾在线提供
- 华为手机的封神之路,小米OV谁能复刻?
- 斗地主 -(一) 如何开发斗地主
- FatalThrowableError in Encrypter.php line 66: Call to undefined function openssl_encrypt()
- Ubuntu 下安装新世纪五笔输入法
- 小蚁服务器维修期限,小蚁监控云服务器