Manikanta
Manikanta

Reputation: 63

Error in Success callbackId: Geolocation

I created the cordova project for the project I added the android platform and geolocation plugin i.e

cordova-plugin-geolocation 2.0.0 "Geolocation"

while I execute the code I'm getting the error

"Error in Success callbackId: Geolocation876750358 : TypeError: Cannot read property '0' of undefined", source: file:///android_asset/www/cordova.js (312)

This is code

<!DOCTYPE html>
<html>
<head>
    <title>Device Properties Example</title>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">
        document.addEventListener("deviceready", onDeviceReady, false);
        function onDeviceReady() {
            navigator.geolocation.getCurrentPosition(onSuccess, onError);
        }
        function onSuccess(position) {
            var element = document.getElementById('geolocation');
            element.innerHTML = 'Latitude: '           + position.coords.latitude              + '<br />' +
                                'Longitude: '          + position.coords.longitude             + '<br />' +
                                'Altitude: '           + position.coords.altitude              + '<br />' +
                                'Accuracy: '           + position.coords.accuracy              + '<br />' +
                                'Altitude Accuracy: '  + position.coords.altitudeAccuracy      + '<br />' +
                                'Heading: '            + position.coords.heading               + '<br />' +
                                'Speed: '              + position.coords.speed                 + '<br />' +
                                'Timestamp: '          + position.timestamp                    + '<br />';
        }
        function onError(error) {
            alert('code: '    + error.code    + '\n' +
                  'message: ' + error.message + '\n');
        }
    </script>
</head>
<body>
    <p id="geolocation">Finding geolocation...</p>
</body>
</html>

Upvotes: 2

Views: 2537

Answers (1)

Joerg
Joerg

Reputation: 3101

I think, that the plugin is not installed right. Test it this way:

<!DOCTYPE html>
<html>
<head>
    <title>Device Properties Example</title>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">
        document.addEventListener("deviceready", onDeviceReady, false);
        function onDeviceReady() {
            if (!navigator.geolocation) {
                alert("Error: Plugin not working!");
            } else {
                navigator.geolocation.getCurrentPosition(onSuccess, onError);
            }

            function onSuccess(position) {
                var element = document.getElementById('geolocation');
                element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' +
                        'Longitude: ' + position.coords.longitude + '<br />' +
                        'Altitude: ' + position.coords.altitude + '<br />' +
                        'Accuracy: ' + position.coords.accuracy + '<br />' +
                        'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '<br />' +
                        'Heading: ' + position.coords.heading + '<br />' +
                        'Speed: ' + position.coords.speed + '<br />' +
                        'Timestamp: ' + position.timestamp + '<br />';
            }
            function onError(error) {
                alert('code: ' + error.code + '\n' +
                        'message: ' + error.message + '\n');
            }
        }

    </script>
</head>
<body>
<p id="geolocation">Finding geolocation...</p>
</body>
</html>

If you see the error alert, then you should uninstall and install the plugin again by following the docs https://www.npmjs.com/package/cordova-plugin-geolocation.

Update:

Sorry, I haven't seen it, the success and error functions have to be inside of the device ready event function.

Upvotes: 0

Related Questions