0

現在の位置を取得し、自分の位置を監視するために、phonegap、jquerymobile、googlemap API を使用しています。

このため、マップ ページを起動すると、自分の位置がマーカーで表示され、移動するとマーカーが移動します。アプリを閉じたとき(onPause)に期待通りに動作したとしても。

これが私のコードです(私がそれを完成させる方法を教えてください:o))

$('#home').live("pagebeforeshow", function() {

    if($('#googleAPI').length != 0){


        navigator.geolocation.getCurrentPosition(function(position){

            //showMap('mapHome',position.coords.latitude, position.coords.longitude);// Canvas, lat, long

            var latLng = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);

            // Google Map options
            var myOptions = {
                zoom: 17,
                //zoomControl   : 1,
                center: latLng,
                mapTypeId: google.maps.MapTypeId.ROADMAP////ROADMAP, SATELLITE, HYBRID and TERRAIN
            };      

            // Create the Google Map, set options
            Tracking.mapy = new google.maps.Map(document.getElementById('mapHome'), myOptions);

            //addMarker(position.coords.latitude,position.coords.longitude);

        }, 
        showError, 
        {

                enableHighAccuracy  : true,
                maximumAge          : 2000
                //maximumAge:Infinity
        });

    }
})  

    $('#home').live("pageshow", function() {

        // Place and move the marker regarding to my position and deplacement
    if($('#googleAPI').length != 0){

        //var track_id = "me";
        Tracking.watch_id = navigator.geolocation.watchPosition(
        // Success
        function(position){

            var lat = position.coords.latitude;
            var long = position.coords.longitude;

            var latLng = new Array();
            latLng[0] = lat;
            latLng[1] = long;

            //Tracking.myCoordinates.push(lat,long);
            Tracking.myCoordinates.push(latLng);

            addMarker(lat, long);

        },
        // Error
        showError,
        { 
            frequency: 1000

        });

        console.log('HW : WatchPosition called. Id:' + Tracking.watch_id);


    }else{
        Alert.show('The map API has not been loaded. Check for connection and try again. (pagebeforeshow)');
    }


})

$('#home').live("pagebeforehide", function() {

    if($('#googleAPI').length != 0){

        //track_id = "me";

        // Stop tracking the user

        if (Tracking.watch_id != null) {
            navigator.geolocation.clearWatch(Tracking.watch_id);
        console.log('HW : WatchPosition cancelled Id:' + Tracking.watch_id);
            Tracking.watch_id = null;
        }


        //navigator.geolocation.clearWatch(Tracking.watch_id);



        //Tracking.watch_id = null;
        Tracking.myCoordinates = new Array();

    }else{
        Alert.show('The map API has not been loaded. Check for connection and try again. (pagebeforeshide)');
    }

});

問題は、アプリを閉じたときです。これは、ジオフェンスの外に出たときにまだ警戒する必要があるためです。次に、自分のポジションを監視するために停止しない限り、ポジションを閉じたり、別のアプリを起動したりしても、監視する必要があります。

次に、その Phonegap を呼び出したときにどうすればよいかわかりません。

document.addEventListener('pause', onPause, false);
function onPause(){}

別の watch_id を使用してウォッチ コードを再起動する必要がありますか?

なにか提案を?

多くの感謝と新年あけましておめでとうございます

4

1 に答える 1

0

あなたが取得しようとしているのは、phonegap を使用してバックグラウンド プロセスを実行していると思います。このリンクの議論は、その機能を実行するプラグインを作成した場合にのみ可能であると言っているようです。PhoneGap には、すぐに使用できる API がありません。

phonegapを使用してバックグラウンドでjavascriptを実行する

于 2013-01-01T23:14:52.410 に答える