2014-10-30 4 views
5

Ich versuche, meine Cordova iPhone App in iOS 8.1 arbeitenCordova - Veraltete Versuch Eigenschaft zuzugreifen ‚Useragent‘ auf einem nicht-Navigator Objekt

adaequat seit 8 in 7, erhalten Ich erhalte die folgende Fehler:

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

Dies ist das Rendern der App in der Seite brechen, so brauche ich eine Lösung. Ich habe mir die verschiedenen vorgeschlagenen Lösungen im Internet angeschaut, aber keine scheint zu funktionieren.

Interessanterweise stammt der Fehler von der JS aus "https://maps.gstatic.com/maps-api-v3/api/js/17/17/main.js" abgerufen. --- Vielleicht ein Teil der Google Maps API, die ich verwenden möchte?

Jede Hilfe in dieser Angelegenheit wäre erstaunlich!

Vielen Dank

Chris

Antwort

14

Welche Cordova-Version verwenden Sie?

, die jetzt in der neuesten Version fixiert werden sollte, aber wenn man das Projekt nicht aktualisieren möchten, können Sie replaceNavigator Funktion zu sein, wie dies auf der cordova.js Datei (das ganze sonst noch neu ist)

ändern
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; 
    } 
+0

Das hat perfekt funktioniert. Danke für die Lösung! – Chris

+0

Das hat bei mir nicht funktioniert. – Tyguy7

+0

Können Sie mehr Details geben als nur "Das hat nicht für mich funktioniert.". Cordova Version? – jcesarmobile

0

es wie ein bekanntes Problem in cordova sieht, dass Ihre cordova Version (sowie Plug-in?)

von Cordova Jira

If you want to get the fix simply do the following:

  1. Clone the cordova-js (Version 3.7)
  2. Grunt the git, this will create all the native js files.
  3. Replace the cordova.js in your platform_www folder
durch die Aktualisierung behoben werden kann
+2

Ich habe die neueste Version von Cordova und Phonegap, immer noch nicht funktioniert, bekommt diesen Fehler. – Tyguy7

Verwandte Themen