更改phonegap应用程序中的User-Agent可在模拟器中运行,但不能在设备上运行

时间:2013-11-07 05:09:43

标签: ios iphone objective-c cordova

我有一个我在IOS平台上构建的PhoneGap 3.0应用程序。

我在didFinishLaunchingWithOptions的{​​{1}}方法中添加了以下两行,以尝试欺骗特定的用户代理(在查看了大量的SO问题之后):

AppDelegate.m

当我在IOS模拟器中运行应用程序并检查NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"my custom user agent", @"UserAgent", nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary]; 时,我得到了预期的“我的自定义用户代理”作为输出。

当我进行远程phonegap构建时,在我的iPhone上运行应用程序并检查navigator.userAgent,我得到标准的iPhone用户代理,而不是我的自定义用户代理。

为什么我在模拟器和设备上获得navigator.userAgent的不同输出?

相关的SO问题:

Change Phonegap User Agent

Detect between a mobile browser or a PhoneGap application

1 个答案:

答案 0 :(得分:1)

  

为什么我在模拟器和设备上从navigator.userAgent获得不同的输出?

当我们进行远程phonegap构建时,我们正在有效地压缩项目的资产并上传它们,因此我们对项目的www目录之外的文件所做的任何更改都将被忽略。

phonegap构建服务正在进行自己的构建并创建自己的AppDelegate.m,而无需更改以编辑用户代理,这解释了为什么我们没有在设备上看到自定义用户代理而我们看到了它在模拟器上。