我正在使用带有phonegap的Cordova 2.9.0来构建iOS应用程序 在iOS 8中,我收到
的错误消息Deprecated attempt to access property 'geolocation' on a non-Navigator object.
Deprecated attempt to access property 'userAgent' on a non-Navigator object
我尝试了EddyVerbruggen的解决方案 https://gist.github.com/EddyVerbruggen/cd02c73162180793513e
但是,我收到Cordova的错误消息
此外,当我的应用程序完全加载时,我使用
没有问题window.navigator.userAgent
答案 0 :(得分:3)
所有的拳头,它似乎只是一个警告,应用程序工作正常。
他们已经解决了这个问题,我很快就会提供它,但是对于使用cordova 2.9.X的人来说,我们必须在replaceNavigator
文件中更改cordova.js
函数。整个其他都是新的)
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;
}