设置User Agent

摘要:
该公司的前端需要在项目的webview中添加一个区别,以区分它是在iOS端、android端还是在浏览器中访问。它表示有必要添加UserAgent。前端根据不同的信息进行调整,这让我有点困惑。后来,在开发同事的指导和在线参考下,我们有了线索。让我们在这里与您分享。

  公司的前端要给项目的webview加一个区分,用来区别是iOS端访问、android访问还是在浏览器访问的,说是要加一个User Agent ,前端根据不同信息做适配,和我说来一头雾水,后来经过开发同事的指导和在网上查阅资料,才有了点头绪,在这里和大家分享一下。

一、获取UserAgent

UIWebView方式:
UIWebView* tempWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString* userAgent = [tempWebView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
NSLog(@"UIWebView默认的userAgent = %@", userAgent);
默认UserAgent输出:
UIWebView默认的userAgent = Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E304
 二、修改UserAgent
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   UIWebView* tempWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
   NSString* userAgent = [tempWebView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
   NSLog(@"UIWebView默认的userAgent = %@", userAgent);
   NSString *versionsss = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];;
   NSString *ua = [NSString stringWithFormat:@"%@/XYWY_YIMAI/iOS/%@", userAgent, versionsss];//自定义需要拼接的字符串
   [[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent" : ua, @"User-Agent" : ua}];
}
获取UserAgent输出:
NSMutableURLRequest *request = .....

/** 获取系统的UA */
NSString *sysUA = request.allHTTPHeaderFields[@"User-Agent"];

最终得到修改后的:

Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E304/XYWY_YIMAI/iOS/5.5

免责声明:文章转载自《设置User Agent》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java实现文件上传50个最受网友欢迎的HTML5资源下载列表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS 关于时间天数星期月份的总结

#import <Foundation/Foundation.h> @interface NSDate (SLExtend) // 判断是否是本周更早 - (BOOL)isThisWeekEarlier; // 判断是否是本周晚些 - (BOOL)isThisWeekLater; // 判断是否是下一周或者更远 - (BOOL)isNextWe...

App自动化之native和webview之间的切换【多测师_王sir】

1、切换到webview # 获取contexts contexts =driver.contexts print(contexts) # 通过获取的contexts索引进行切换到webview driver.switch_to.context(contexts[1]) 切换到webview后,就可以对元素进行定位,定位方法跟web元素定位一样。 定位we...

Android webView 缓存 Cache + HTML5离线功能 解决

时间 2013-06-11 21:06:14CSDN博客 原文 http://blog.csdn.net/moubenmao/article/details/9076917 主题 Android HTML5 WebView的缓存可以分为页面缓存和数据缓存。 页面缓存是指加载一个网页时的html、JS...

iOS-WKWebView的使用

参考文章:http://www.cocoachina.com/ios/20180831/24753.html WK时苹果在iOS8.0之后推出的控件,相比于UIWebView: 内存消耗少; 解决了网页加载时的内存泄漏问题; 与HTML页面的交互更方便; 总之,其性能比UIWebView好很多。 使用时,首先要添加头文件: #import <We...

iOS应用开发最佳实践系列一:编写高质量的Objective-C代码

      本文由海水的味道编译整理,转载请注明译者和出处,请勿用于商业用途! 点标记语法 属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法。 良好的风格: view.backgroundColor = [UIColor orangeColor]; [UIApplication sharedAppl...

vue用hbuilderX打包app嵌入h5方式云打包和遇到的问题

vue用hbuilderX打包app嵌入h5方式云打包和遇到的问题 vue用hbuilderX打包app就可以了,不过有兼容性问题,转换rem的用不了,嵌入到app的webview里面变得很小了,另外还有返回键监听的问题需要处理,否则按手机上的返回键不起作用,另外缓存问题,加载页跳转白屏问题也需要优化。======================安卓本地打...