gpt4 book ai didi

cordova - 我如何在 Cordova 应用程序中设置用户代理

转载 作者:行者123 更新时间:2023-12-02 00:04:46 25 4
gpt4 key购买 nike

如何在 Cordova 应用程序中设置用户代理?我在 VS 2015 中编写 Cordova 应用程序,我需要从其他来源下载数据。此源以 xml 格式返回数据,但当用户代理是移动设备时,此源将重定向到移动站点。我需要将用户代理更改为桌面浏览器。数据源不是我的,无法更改。

最佳答案

这取决于您使用的 cordova-android 和 cordova-ios 版本。

您可以通过运行 cordova platform list 检查平台 cordova 版本

如果您在 iOS 和 Android 上使用 4.0 及以上版本,您可以按照 cordova 文档 here 中所述在 config.xml 中设置它们。

<preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />

如果您使用的是4.0及以下版本,则需要在 native 代码中进行如下设置。(此代码展示了如何追加并且可以修改以完全替换)

在 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"]];

在 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);

}

关于cordova - 我如何在 Cordova 应用程序中设置用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32052221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com