|
|
|
// components/userinfo/getpos.js
|
|
|
|
Component({
|
|
|
|
/**
|
|
|
|
* 组件的属性列表
|
|
|
|
*/
|
|
|
|
properties: {
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 组件的初始数据
|
|
|
|
*/
|
|
|
|
data: {},
|
|
|
|
attached(){
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 组件的方法列表
|
|
|
|
*/
|
|
|
|
methods: {
|
|
|
|
getPosDo(timeout=3000){
|
|
|
|
return new Promise(function(success,fail){
|
|
|
|
let timer1=setTimeout(()=>{
|
|
|
|
fail('timeout')
|
|
|
|
},timeout)
|
|
|
|
wx.getLocation({
|
|
|
|
type: 'gcj02',
|
|
|
|
success: (res) => {
|
|
|
|
success(res)
|
|
|
|
},
|
|
|
|
fail: (res) => {
|
|
|
|
fail(res)
|
|
|
|
},
|
|
|
|
complete:()=>{
|
|
|
|
if(timer1) clearTimeout(timer1)
|
|
|
|
}
|
|
|
|
});
|
|
|
|
})
|
|
|
|
},
|
|
|
|
getPos(fouce=false){
|
|
|
|
wx.getSetting({
|
|
|
|
success: res => {
|
|
|
|
console.log('getPos.scope.userLocation',res.authSetting)
|
|
|
|
let timeout=3000;
|
|
|
|
if(typeof res.authSetting['scope.userLocation']=='undefined'){
|
|
|
|
timeout=86400;
|
|
|
|
}
|
|
|
|
if(res.authSetting['scope.userLocation']===false){
|
|
|
|
if(fouce){
|
|
|
|
this.selectComponent('#confirm').options({
|
|
|
|
header: '定位失败',
|
|
|
|
body: '请开启定位,为您查询附近餐厅。'
|
|
|
|
}).show();
|
|
|
|
}else{
|
|
|
|
this.triggerEvent("pos",{
|
|
|
|
latitude: '',
|
|
|
|
longitude: '',
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}else{//
|
|
|
|
this.getPosDo(timeout).then(res=>{
|
|
|
|
console.log('getPos.then',res)
|
|
|
|
this.triggerEvent("pos",{
|
|
|
|
latitude: res.latitude,
|
|
|
|
longitude: res.longitude,
|
|
|
|
});
|
|
|
|
}).catch(res=>{
|
|
|
|
console.log('getPos.catch',res)
|
|
|
|
this.triggerEvent("pos",{
|
|
|
|
latitude: '',
|
|
|
|
longitude: '',
|
|
|
|
});
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
confirmEvent(e){
|
|
|
|
wx.openSetting({
|
|
|
|
success:res=>{
|
|
|
|
console.log('getPos.openSetting',res)
|
|
|
|
this.getPos();
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}) |
...
|
...
|
|