Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-4610

locationerror event does not contain the three constants (TIMEOUT, PERMISSION_DENIED, POSITION_UNAVAILABLE)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 2.3.0, 2.5.0, 2.9.0, 3.0.0
    • None
    • Mac Mountain Lion, iOS (any version)

    Description

      In the PositionError code, three constants were defined. However, they are not passed back in getCurrentPosition's code below:

      var fail = function(e) {
      clearTimeout(timeoutTimer.timer);
      timeoutTimer.timer = null;
      var err = new PositionError(e.code, e.message);
      if (errorCallback)

      { errorCallback(err); }

      };

      This is due to PositionError.<some constants> wouldn't be available in "err" when you instantiate (or new) PositionError. Try to check the value of "err.TIMEOUT", for example, and you'll get undefined. This works if you are in a browser not using this plugin. One way to fix it is change the PositionError code to below:

      var PositionError = function(code, message) {
      this.PERMISSION_DENIED = PositionError.PERMISSION_DENIED;
      this.POSITION_UNAVAILABLE = PositionError.POSITION_UNAVAILABLE;
      this.TIMEOUT = PositionError.TIMEOUT;
      this.code = code || null;
      this.message = message || '';
      };

      PositionError.PERMISSION_DENIED = 1;
      PositionError.POSITION_UNAVAILABLE = 2;
      PositionError.TIMEOUT = 3;

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              kaffeinesoft William Cheung
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: