Android WebView userAgent 设置为桌面UA实例
最近一个大屏项目中使用到支付宝扫码支付,但是webview加载扫码支付链接时会自动跳转到移动版页面,网上查找怎么设置,没找到解决方案。于是自己随便试了下
webview.getSettings().setUserAgentString("PC");
或
webview.getSettings().setUserAgentString("电脑");
竟然真的可以。
userAgent可以设置浏览器标识,Android/iphone/ipod/ipad/PC等,这个应该有做类似模糊搜索一样,传相近的值就可以;它就会自动加载桌面版页面或移动版页面。前提是这些页面要有桌面版页面和移动版页面,并且做了ua判断跳转相应页面。如果传的ua识别不出来将自动加载桌面版页面。
补充知识:自定义webView的userAgent
user-Agent用户代理,是指浏览器,它的信息包括硬件平台、系统软件、应用软件和用户个人偏好。用户代理的能力和偏好可以认为是元数据或用户代理的硬件和软件的特性和描述。通过自定义user-Agent,我们可以给特定的浏览器读取特定的一些消息。
UIWebView*webView=[[UIWebViewalloc]initWithFrame:CGRectZero]; NSString*oldAgent=[webViewstringByEvaluatingJavaScriptFromString:@"navigator.userAgent"]; NSLog(@"oldagent:%@",oldAgent); //addmyinfotothenewagent NSString*newAgent=[oldAgentstringByAppendingString:@"SuGrand/2.4.7ch_appstore"]; //orupdatamyinfotothenewagent //NSString*newAgent=[NSStringstringWithFormat:@"Mozilla/5.0(iPhone;CPUiPhoneOS8_0likeMacOSX)AppleWebKit/600.1.4(KHTML,likeGecko)Mobile/12H141"]; NSLog(@"newagent:%@",newAgent); //registthenewagent NSDictionary*dic=[[NSDictionaryalloc]initWithObjectsAndKeys:newAgent,@"UserAgent",nil]; [[NSUserDefaultsstandardUserDefaults]registerDefaults:dic];
这样,WebView在请求时的user-Agent就是我们设置的这个了,如果需要在WebView使用过程中再次变更user-Agent,则需要再通过这种方式修改user-Agent,然后再重新实例化一个WebView。
__weaktypeof(self)weakSelf=self; [self.webViewevaluateJavaScript:@"navigator.userAgent"completionHandler:^(idresult,NSError*error){ __strongtypeof(weakSelf)strongSelf=weakSelf; NSLog(@"oldagent:%@",result); NSString*userAgent=result; NSString*newUserAgent=[userAgentstringByAppendingString:@"AppendedCustomUserAgent"]; NSDictionary*dictionary=[NSDictionarydictionaryWithObjectsAndKeys:newUserAgent,@"UserAgent",nil]; [[NSUserDefaultsstandardUserDefaults]registerDefaults:dictionary]; strongSelf.webView=[[WKWebViewalloc]initWithFrame:strongSelf.view.bounds]; //Afterthispointthewebviewwilluseacustomappendeduseragent [strongSelf.webViewevaluateJavaScript:@"navigator.userAgent"completionHandler:^(idresult,NSError*error){ NSLog(@"newagent:%@",result); }]; }];
以上这篇AndroidWebViewuserAgent设置为桌面UA实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。