我仍然对appcelerator很新,但我试图用地理位置做一个小实验。我有一些类似于下面的代码,它将long和lat返回到控制台。我想要的是获取long和lat并将它们附加到URL,例如http://www.mywebsite.com/lat/long。
我已经尝试创建一个简单的提醒来向我显示当前位置,但它只是警告:[对象GeolocationModule]。
有人能指出我正确的方向,所以我可以学到更多吗?谢谢
if (Ti.Geolocation.locationServicesEnabled) {
Titanium.Geolocation.purpose = 'Get Current Location';
Titanium.Geolocation.getCurrentPosition(function(e) {
if (e.error) {
Ti.API.error('Error: ' + e.error);
} else {
Ti.API.info(e.coords);
}
});
} else {
alert('Please enable location services');
}
答案 0 :(得分:2)
这是您需要遵循API文档的方式:
您可以查看LocationResults页面:https://docs.appcelerator.com/platform/latest/#!/api/LocationResults,它会引导您到LocationCoordinates:https://docs.appcelerator.com/platform/latest/#!/api/LocationCoordinates
您可以看到,您可以使用e.coords.latitude
或longitude
来获取值。或者看一下控制台输出。它应该显示带有键值对的JSON输出。
获得值后,您可以创建HTTP请求(演示:https://docs.appcelerator.com/platform/latest/#!/guide/HTTPClient_and_the_Request_Lifecycle)并打开您的页面:
var url = "https://www.appcelerator.com/"+e.coords.longitude+"/"+e.coords.latitude;
var xhr = Ti.Network.createHTTPClient({
onload: function(e) {
// this function is called when data is returned from the server and available for use
// this.responseText holds the raw text return of the message (used for text/JSON)
// this.responseXML holds any returned XML (including SOAP)
// this.responseData holds any returned binary data
Ti.API.debug(this.responseText);
alert('success');
},
onerror: function(e) {
// this function is called when an error occurs, including a timeout
Ti.API.debug(e.error);
alert('error');
},
timeout:5000 /* in milliseconds */
});
xhr.open("GET", url);
xhr.send(); // request is actually sent with this statement
或者如果您打算使用更多请求,请查看RESTe(https://github.com/jasonkneen/RESTe),这是一个非常棒的库,可以轻松创建API请求