Cordova – 不推荐尝试访问非导航器对象上的属性“userAgent”

我试图让我的cordovaiPhone应用程序在iOS 8.1中工作

在7工作正常,因为8我得到以下错误:

Deprecated attempt to access property 'userAgent' on a non-Navigator object. 

这是打破了页面中的应用程序的渲染,所以我需要一个修复。 我已经看到了围绕networking提出的各种解决scheme,但似乎没有任何工作。

有趣的是,错误来自从“ https://maps.gstatic.com/maps-api-v3/api/js/17/17/main.js ”检索到的JS。 —也许是我试图使用的Google Maps API的一部分?

任何关于此事的帮助都将是惊人的!

非常感谢

克里斯

你正在使用哪个cordova版本?

现在应该修改为最新版本,但是如果你不想更新项目,你可以在cordova.js文件中将replaceNavigator函数改成这样(其他的都是新的)

 function replaceNavigator(origNavigator) { var CordovaNavigator = function() {}; CordovaNavigator.prototype = origNavigator; var newNavigator = new CordovaNavigator(); // This work-around really only applies to new APIs that are newer than Function.bind. // Without it, APIs such as getGamepads() break. if (CordovaNavigator.bind) { for (var key in origNavigator) { if (typeof origNavigator[key] == 'function') { newNavigator[key] = origNavigator[key].bind(origNavigator); } else { (function(k) { Object.defineProperty(newNavigator, k, { get: function() { return origNavigator[k]; }, configurable: true, enumerable: true }); })(key); } } } return newNavigator; } 

它看起来像cordova已知的问题,可以通过更新您的cordova版本(以及插件?

从cordovaJira

如果你想获得修复,只需执行以下操作:

  1. 克隆cordova-js(3.7版)
  2. 咕噜的git,这将创build所有的本地js文件。
  3. replace您的platform_www文件夹中的cordova.js