2017-04-26 102 views
-1

我有一個爲我的客戶端和他們的客戶端的移動應用程序構建的Web應用程序。我開發了一個應用程序,可以使用後臺服務以設定的時間間隔跟蹤他們的位置。但是,我被要求添加並根據請求跟蹤位置。這意味着,在我的網絡應用程序,如果我點擊獲取用戶的位置,我將被髮回一個拉特和lng。有關如何啓動此功能的任何提示都會很棒。使用我的web應用程序獲取我的android設備位置

+0

'函數的getLocation(){}'似乎是一個良好的開端 – Weedoze

+0

至於說通過@Weedoze,創建一個JavaScript接口功能。檢查此:http://stackoverflow.com/questions/39657311/using-javascript-bridge-in-android – Vikrant

+0

感謝您的鏈接,將試試看,似乎這只是可能的工作。但對於我的情況,我會寫在我的服務而不是我的活動? @Vikrant –

回答

0

在您的應用程序(後臺服務):

- 寫入您的緯度和經度作爲「最後已知位置」到數據庫

在你的web應用:

-Query數據庫並獲得最後的位置

+0

截至目前爲止,我設置的時間間隔是一小時,通過db獲取我最後一個已知的位置對我的客戶來說不是一個好選擇,是否有辦法讓客戶端的位置在請求? –

0

當有人點擊web上的按鈕作爲服務器時,您可以創建GCM服務,通過GCM向Android客戶端發送消息。接收消息事件後,獲取當前位置並將其發送到服務器。也許this site可以幫助你創建GCM服務。

+0

對於這種情況下,它似乎可以工作,但我預見到發送到服務器的一些問題。 我想要的是在webApp上點擊並獲得一個地圖的引導彈出窗口模式的插入到它的經緯度或一個錯誤消息,如果用戶沒有WiFi或GPS禁用,你認爲GCM將工作? 由於我可以看到發送到服務器可能是一個問題,因爲點擊我執行發送函數到我的應用程序,但我將如何顯示從那裏經緯度? –

0

您可以隨時使用原生JavaScript方法navigator.geolocation它可以在移動設備和網絡中使用。參考下面的例子。


    var options = { 
     enableHighAccuracy: true, 
     timeout: 5000, 
     maximumAge: 0 
    }; 

    function success(pos) { 
     var crd = pos.coords; 

     console.log('Your current position is:'); 
     console.log(`Latitude : ${crd.latitude}`); 
     console.log(`Longitude: ${crd.longitude}`); 
     console.log(`More or less ${crd.accuracy} meters.`); 
    }; 

    function error(err) { 
     console.warn(`ERROR(${err.code}): ${err.message}`); 
    }; 

    navigator.geolocation.getCurrentPosition(success, error, options); 

example taken from documentation

+0

對於這種情況,即時猜測最終用戶將獲得發送位置與網絡應用程序? 我的目標是,在筆記本電腦上,我點擊一個按鈕,並獲得最終用戶移動設備的位置。 –

+0

然後你必須保持一個事件的位置應該更新/接收。 - 如果設備移動了一定距離,您可以擁有一項服務來更新地理定位。 _(這是我在iOS中使用過的一次) - 您可以使用socket.io(如果使用nodejs的話)發送/接收事件或其他選擇。 (_http://nkzawa.tumblr.com/post/46850605422/connecting-to-a-socketio-server-from-android_) - 您還可以通過firebase雲消息傳遞實現此目的 – imixtron

相關問題