在适用于iOS的Cordova / PhoneGap应用程序上修改User-Agent字符串

时间:2015-09-11 00:13:56

标签: ios cordova github phonegap-plugins user-agent

我正在关注下面的GitHub拉取请求,看看是否可以实现,代码更改意义上有活动(17行),但我不确定如何将这个实现到我的iOS应用程序中......有人有任何想法吗? (cordova 5.1)

https://github.com/apache/cordova-plu ...

干杯, 将

2 个答案:

答案 0 :(得分:6)

您的链接似乎已被破坏,但我想我知道您要求的是什么。这实际上是Cordova的一个相对较新的功能,来自issue

大约一个月前它在cordova-ios 3.9.0中推出。请参阅这些release notes。 (请记住,像cordova-ios和cordova-android这样的平台版本与您给出的版本号5.1不同,这是CLI版本)

您可以在项目的根目录中的config.xml文件中设置首选项。

<preference name="AppendUserAgent" value="myapp" />

会产生这样的东西:

"Mozilla/5.0 (Linux; Android 4.4.4; Nexus 5 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.114 Mobile Safari/537.36 myapp"

虽然这个:

<preference name="OverrideUserAgent" value="Better_be_really_specific_here" />

只会给你这个:

"Better_be_really_specific_here" 

我建议只使用AppendUserAgent,就好像你只是使用覆盖一样,你将丢失所有其他有价值的信息,比如你可以从UA获得的设备,操作系统,浏览器版本等。

答案 1 :(得分:1)

Android:在config.xml中添加以下代码

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public sealed class NoCacheAttribute : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
        filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        filterContext.HttpContext.Response.Cache.SetNoStore();

        base.OnResultExecuting(filterContext);
    }
}