Files
xhs-examples/xhs-mini-demos/api-case/get-location/get-location.js
2025-09-14 00:21:54 +08:00

200 lines
4.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const __templateJs = require("./templates.js");
const __mergePageOptions = require("../../util/mergePageOptions.js");
Page(__mergePageOptions({
onShareAppMessage() {
return {
title: '获取位置',
path: 'packageAPI/pages/get-location/get-location'
};
},
data: {
count: 0,
hasLocation: false,
altitude: false,
isHighAccuracy: false,
highAccuracyExpireTime: 0,
latitude: 12.1,
longitude: 12.1,
type: 'wgs84',
apiData: {
content: '',
success: false,
fail: false,
complete: false
},
choosedLocation: {
name: '',
address: '',
latitude: '',
longitude: ''
},
getLoaction: {
accuracy: '',
altitude: '',
horizontalAccuracy: '',
latitude: '',
longitude: '',
speed: '',
verticalAccuracy: ''
}
},
resetApiData() {
this.setData({
apiData: {
success: false,
fail: false,
complete: false,
content: ''
}
});
},
updateApiData(type, content) {
const apiData = {
...this.data.apiData
};
apiData[type] = true;
apiData.content = content;
this.setData({
apiData
});
},
getLocation() {
this.resetApiData();
xhs.getLocation({
success: res => {
this.setData({
getLoaction: res
});
console.log('getlocation', res);
},
fail: res => {
this.updateApiData('fail', res);
},
complete: res => {
this.updateApiData('complete', res);
}
});
},
startLocationUpdate() {
this.resetApiData();
xhs.startLocationUpdate({
success: res => {
this.updateApiData('success', res);
xhs.showToast({
title: '已开启位置服务'
});
},
fail: res => {
this.updateApiData('fail', res);
},
complete: res => {
this.updateApiData('complete', res);
}
});
},
startLocationUpdateBackground() {
this.resetApiData();
xhs.startLocationUpdateBackground({
success: res => {
this.updateApiData('success', res);
},
fail: res => {
this.updateApiData('fail', res);
},
complete: res => {
this.updateApiData('complete', res);
}
});
},
stopLocationUpdate() {
this.resetApiData();
xhs.stopLocationUpdate({
success: res => {
this.updateApiData('success', res);
xhs.showToast({
title: '已关闭位置服务'
});
},
fail: res => {
this.updateApiData('fail', res);
},
complete: res => {
this.updateApiData('complete', res);
}
});
},
chooseLocation() {
this.resetApiData();
xhs.chooseLocation({
latitude: this.data.latitude - 0,
longitude: this.data.longitude - 0,
success: res => {
this.setData({
choosedLocation: res
});
},
fail: res => {
this.updateApiData('fail', res);
},
complete: res => {
this.updateApiData('complete', res);
}
});
},
onLocationChange() {
this.resetApiData();
this.offLocation = xhs.onLocationChange(res => {
this.updateApiData('success', res);
this.setData({
count: this.data.count + 1
});
});
},
offLocationChange() {
if (this?.offLocation?.remove) {
this.offLocation.remove();
}
this.updateApiData('success');
},
handleAltitude(e) {
this.setData({
altitude: e.detail.value
});
},
handleHighAccuracy(e) {
this.setData({
isHighAccuracy: e.detail.value
});
},
handleHighAccuracyExpireTime(e) {
this.setData({
highAccuracyExpireTime: e.detail.value - 0
});
},
handleType(e) {
this.setData({
type: e.detail.value
});
},
handleLongitude(e) {
this.setData({
longitude: e.detail.value - 0
});
},
handleLatitude(e) {
this.setData({
latitude: e.detail.value - 0
});
},
openLocation() {
xhs.openLocation({
latitude: 31.215442551782044,
longitude: 121.47457688571865,
address: '上海市黄浦区马当路356号',
name: '小红书总部',
complete: res => {
console.log('【openLocation】', res);
}
});
}
}, __templateJs));