【问题标题】:Error in Success callbackId: Geolocation成功 callbackId 中的错误:地理位置
【发布时间】:2015-12-19 12:23:05
【问题描述】:

我为添加了 android 平台和地理定位插件的项目创建了 cordova 项目,即

cordova-plugin-geolocation 2.0.0“地理位置”

执行代码时出现错误

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

这是代码

<!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>

【问题讨论】:

  • 请显示一些代码,否则人们不得不猜测你的错误。
  • 好的。我添加了代码

标签: cordova geolocation


【解决方案1】:

我认为,插件安装不正确。用这种方式测试:

<!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>

如果您看到错误警报,那么您应该按照文档https://www.npmjs.com/package/cordova-plugin-geolocation 重新卸载并安装插件。

更新:

对不起,我没看过,成功和错误函数必须在设备就绪事件函数内部。

【讨论】:

  • 插件已添加。我试过你的代码它没有显示警报。我认为错误在这一行 navigator.geolocation.getCurrentPosition(onSuccess, onError);
  • 我尝试更新也出现同样的错误。是否有任何插件或平台需要升级。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多