0

当我使用 ons.navigator.pushPage 并导航到 searchNearby html 页面时,它应该向我显示当前的地理位置坐标。然而它并没有那样做。当我直接加载 searchNearby 页面时,它完美地显示了坐标。关于它的任何想法

索引.html

<body ng-controller="courseController">

<ons-navigator title="Class Finder">
<ons-page>
<ons-row>
    <ons-col size="80" style="padding: 8px">
    <ons-search-input ng-model="searchText" placeholder="Search..." >
    </ons-search-input>
    </ons-col>
    <ons-col size="20" >
    <ons-button type="large--quiet" ng-click="ons.navigator.pushPage('searchNearby/index.html',{title:'Search Nearby'})">Search nearby
    </ons-button>
    </ons-col>
</ons-row>
</ons-page>
</ons-navigator>
</body>

搜索附近/index.html

<body>
<p id="geolocation">Finding geolocation...</p>
<div id="t01"> </div>
    <script type="text/javascript" charset="utf-8">
    var lat,lon;
    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>   
</body>
4

1 回答 1

0

您的 JS 不会在 searchNearby/index.html 上被触发,因为您的页面是异步加载的。

我建议在页面完全加载时设置某种回调,以便您可以执行 getCurrentPosition 方法。

或者,您可以事先获取位置,然后将成功对象传递给 searchNearby 页面。

于 2014-07-03T14:32:11.080 回答