2017-04-26 103 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

相关问题