我正在尝试让我的Cordova iPhone应用程序在iOS 8.1中运行
在7中工作正常,因为8我收到以下错误:
Deprecated attempt to access property 'userAgent' on a non-Navigator object.
这打破了页面中应用的渲染,所以我需要修复。我已经看过网络上提出的各种解决方案,但似乎都没有。
有趣的是,错误来自从“https://maps.gstatic.com/maps-api-v3/api/js/17/17/main.js”检索到的JS。 ---也许是我试图使用的Google Maps API的一部分?
任何关于此事的帮助都会很棒!
非常感谢
克里斯
答案 0 :(得分:14)
您使用的是哪种Cordova版本?
现在应该在最新版本中修复,但如果您不想更新项目,可以在cordova.js文件中更改replaceNavigator函数(其他全部是新的)< / p>
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;
}
答案 1 :(得分:0)
看起来像cordova中的一个已知问题,可以通过更新你的cordova版本(以及插件?)来解决这个问题。
如果您想获得修复,只需执行以下操作:
- 克隆cordova-js(版本3.7)
- Grunt git,这将创建所有本机js文件。
- 替换platform_www文件夹中的cordova.js
醇>