btf*_*f89 10 user-agent request cordova visual-studio-2015
如何在Cordova App中设置用户代理?我在VS 2015中编写了Cordova App,我需要从其他来源下载数据.此源以xml格式返回数据,但是当用户代理是移动的时,此源重定向会执行移动站点.我需要将User Agent更改为桌面浏览器.数据源不是我的,不能改变它.
BBi*_*ios 14
这取决于您使用的cordova-android和cordova-ios的版本.
您可以通过运行检查平台cordova版本 cordova platform list
如果使用的是4.0及以上版本iOS和Android的,你可以将它们设置在config.xml中为科尔多瓦文档中所述这里
<preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />
如果您使用的是4.0及更低版本,则需要使用本机代码进行设置,如下所示.(此代码显示如何追加并可以修改以完全替换)
在iOS中你可以做到
在AppDelegate.m中,didfinishlaunchingwithoptions方法
UIWebView* sampleWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString* originalUserAgent = [sampleWebView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
self.viewController.baseUserAgent = [NSString stringWithFormat:@"%@ customAgent/%@ customAgent/%@",
originalUserAgent,CDV_VERSION,
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]];
Run Code Online (Sandbox Code Playgroud)
在Android中你可以做到
settings = webView.getSettings();
String userAgent = settings.getUserAgentString();
if (!settings.getUserAgentString().contains("customAgent")) {
PackageManager packageManager = this.cordova.getActivity().getPackageManager();
double versionCode;
try {
versionCode = packageManager.getPackageInfo(this.cordova.getActivity().getPackageName(), 0).versionCode;
} catch (PackageManager.NameNotFoundException e) {
versionCode = 1.0;
}
userAgent += " customAgent/" + CordovaWebView.CORDOVA_VERSION + " customAgent/" + versionCode + " (233)";
settings.setUserAgentString(userAgent);
}
Run Code Online (Sandbox Code Playgroud)
使用https://github.com/LouisT/cordova-useragent等插件
要安装插件,请使用Cordova CLI并输入以下内容:cordova plugin add https://github.com/LouisT/cordova-useragent
设置User-Agent:UserAgent.set(useragent)
获取当前的User-Agent:UserAgent.get(function(ua){})
将User-Agent设置回默认值:UserAgent.reset()
归档时间: |
|
查看次数: |
13757 次 |
最近记录: |