Android WebView userAgent 設(shè)置為桌面UA實(shí)例
最近一個(gè)大屏項(xiàng)目中使用到支付寶掃碼支付,但是webview加載掃碼支付鏈接時(shí)會(huì)自動(dòng)跳轉(zhuǎn)到移動(dòng)版頁(yè)面,網(wǎng)上查找怎么設(shè)置,沒(méi)找到解決方案。于是自己隨便試了下
webview.getSettings().setUserAgentString('PC');
或
webview.getSettings().setUserAgentString('電腦');
竟然真的可以。
userAgent可以設(shè)置瀏覽器標(biāo)識(shí),Android/iphone/ipod/ipad/PC等,這個(gè)應(yīng)該有做類似模糊搜索一樣,傳相近的值就可以;它就會(huì)自動(dòng)加載桌面版頁(yè)面或移動(dòng)版頁(yè)面。前提是這些頁(yè)面要有桌面版頁(yè)面和移動(dòng)版頁(yè)面,并且做了ua判斷跳轉(zhuǎn)相應(yīng)頁(yè)面。如果傳的ua識(shí)別不出來(lái)將自動(dòng)加載桌面版頁(yè)面。
補(bǔ)充知識(shí):自定義webView的userAgent
user-Agent 用戶代理,是指瀏覽器,它的信息包括硬件平臺(tái)、系統(tǒng)軟件、應(yīng)用軟件和用戶個(gè)人偏好。用戶代理的能力和偏好可以認(rèn)為是元數(shù)據(jù)或用戶代理的硬件和軟件的特性和描述。通過(guò)自定義user-Agent ,我們可以給特定的瀏覽器讀取特定的一些消息。
UIWebView * webView = [[UIWebView alloc] initWithFrame:CGRectZero]; NSString * oldAgent = [webView stringByEvaluatingJavaScriptFromString:@'navigator.userAgent']; NSLog(@'old agent :%@', oldAgent); //add my info to the new agent NSString * newAgent = [oldAgent stringByAppendingString:@' SuGrand/2.4.7 ch_appstore']; // or updata my info to the new agent// NSString * newAgent = [NSString stringWithFormat:@'Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H141']; NSLog(@'new agent :%@', newAgent); //regist the new agent NSDictionary * dic = [[NSDictionary alloc] initWithObjectsAndKeys:newAgent, @'UserAgent', nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:dic];
這樣,WebView在請(qǐng)求時(shí)的user-Agent 就是我們?cè)O(shè)置的這個(gè)了,如果需要在WebView 使用過(guò)程中再次變更user-Agent,則需要再通過(guò)這種方式修改user-Agent, 然后再重新實(shí)例化一個(gè)WebView。
__weak typeof(self) weakSelf = self; [self.webView evaluateJavaScript:@'navigator.userAgent' completionHandler:^(id result, NSError *error) { __strong typeof(weakSelf) strongSelf = weakSelf; NSLog(@'old agent :%@', result); NSString *userAgent = result; NSString *newUserAgent = [userAgent stringByAppendingString:@' Appended Custom User Agent']; NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:newUserAgent, @'UserAgent', nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary]; strongSelf.webView = [[WKWebView alloc] initWithFrame:strongSelf.view.bounds]; // After this point the web view will use a custom appended user agent [strongSelf.webView evaluateJavaScript:@'navigator.userAgent' completionHandler:^(id result, NSError *error) { NSLog(@'new agent :%@', result); }]; }];
以上這篇Android WebView userAgent 設(shè)置為桌面UA實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向2. .NET SkiaSharp 生成二維碼驗(yàn)證碼及指定區(qū)域截取方法實(shí)現(xiàn)3. jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲4. CentOS郵件服務(wù)器搭建系列—— POP / IMAP 服務(wù)器的構(gòu)建( Dovecot )5. Java中equals()知識(shí)點(diǎn)總結(jié)6. css代碼優(yōu)化的12個(gè)技巧7. ASP中if語(yǔ)句、select 、while循環(huán)的使用方法8. MyBatis JdbcType 與Oracle、MySql數(shù)據(jù)類型對(duì)應(yīng)關(guān)系說(shuō)明9. 小技巧處理div內(nèi)容溢出10. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法
