作者 wumengyu

app配置地理位置

... ... @@ -11,7 +11,7 @@ App({
self.globalData.isLogin = true;
wx.setStorageSync('isLogin', true)
// wx.redirectTo({
// url: '/pages/index/index', //跳转到授权页面
// url: '/pages/index/index', //跳转到首页
// });
} else {
console.log('授权失效到授权页');
... ...
... ... @@ -32,5 +32,10 @@
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "火柴西路",
"navigationBarTextStyle": "black"
},
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于获取附近的活动"
}
}
}
\ No newline at end of file
... ...
... ... @@ -3,10 +3,30 @@
const app = getApp();
import mock from './mock.js'//拿到的数据
var getLocation = function (self) {//当第一次未授权时需要重新调用此接口
wx.getLocation({
type: 'wgs84',
success: function (res) {
console.log('再次授权结果', res);
self.setData({
lat: res.latitude,
lng: res.longitude
});
},
fail: function () {
wx.showToast({
title: '授权失败',
icon: 'none',
duration: 1000
})
}
})
}
Page({
data: {
is_show_city:false,
is_show_city: false,
items: [],
slide: [],
cate: [],
... ... @@ -22,7 +42,7 @@ Page({
current_swiper: 0,
page_number: 1,
cityList: [],
addr:'', //切换地址
addr: '', //切换地址
img_heights: [], //图片宽度
img_width: 750, //默认
... ... @@ -37,10 +57,10 @@ Page({
},
//关闭金火柴勋章弹框
close() {
this.setData({show_gold_modal:false,show_normal_modal:false});
this.setData({show_gold_modal: false, show_normal_modal: false});
try {
wx.removeStorageSync('score');
console.log('删除后score',wx.getStorageSync('score'));
console.log('删除后score', wx.getStorageSync('score'));
} catch (e) {
// Do something when catch error
}
... ... @@ -84,7 +104,7 @@ Page({
is_showAnswer: false,
is_showUserInfo: false,
is_showRelease: false,
is_show_city:false,
is_show_city: false,
})
},
//进入分类详情
... ... @@ -92,10 +112,10 @@ Page({
const id = +e.currentTarget.dataset.id;
const name = e.currentTarget.dataset.name;
let city = null;
if(this.data.is_city_change) {
if (this.data.is_city_change) {
city = JSON.stringify({
// name:this.data.cityList[this.data.current_city].title,
name:this.data.addr,
name: this.data.addr,
lat: this.data.lat,
lng: this.data.lng,
})
... ... @@ -114,10 +134,10 @@ Page({
//查看更多
goMore() {
let city = null;
if(this.data.is_city_change) {
if (this.data.is_city_change) {
city = JSON.stringify({
// name:this.data.cityList[this.data.current_city].title,
name:this.data.addr,
name: this.data.addr,
lat: this.data.lat,
lng: this.data.lng,
})
... ... @@ -149,7 +169,7 @@ Page({
})
},
bannerChange(e) {
console.log(e,'current', current);
console.log(e, 'current', current);
const current = e.detail.current;
this.setData({currentBannerIndex: current})
},
... ... @@ -217,21 +237,22 @@ Page({
},
//发布按钮
release(e) {
console.log('发布',app.globalData.isLogin);
console.log('发布', app.globalData.isLogin);
const self = this;
// self.setData({
// is_showAnswer: true, //弹出 去答题弹框
// is_showRelease:false,
// });
if(!app.globalData.isLogin) {
wx.showToast({title: '还没登录,先去登录吧~', icon: 'none',
success:function () {
if (!app.globalData.isLogin) {
wx.showToast({
title: '还没登录,先去登录吧~', icon: 'none',
success: function () {
setTimeout(function () {
wx.redirectTo({url:'/pages/my/my'})
},500)
wx.redirectTo({url: '/pages/my/my'})
}, 500)
}
});
}else {
} else {
if (+self.data.is_write === 2 && wx.getStorageSync('is_canSend') === 2) { //没填写个人信息并且不可以发布 =>去填写
self.setData({
is_showUserInfo: true //弹出 去填写个人信息弹框
... ... @@ -240,7 +261,7 @@ Page({
} else if (+self.data.is_write === 1 && wx.getStorageSync('is_answer') === 2) { //已填写且不能发布=>去答题
self.setData({
is_showAnswer: true, //弹出 去答题弹框
is_showRelease:false,
is_showRelease: false,
});
} else if (+self.data.is_write === 1 && wx.getStorageSync('is_canSend') === 1 && wx.getStorageSync('is_answer') === 1) { //已填写且可以发布 =>去发布
self.setData({
... ... @@ -288,7 +309,7 @@ Page({
//打开城市列表页面
chooseCity() {
// this.setData({is_show_city:!this.data.is_show_city})
wx.navigateTo({url:'/pages/index/city-list/city-list'})
wx.navigateTo({url: '/pages/index/city-list/city-list'})
},
//切换城市
// cityPickerChange(e) {
... ... @@ -302,35 +323,99 @@ Page({
// // console.log('lat', 'lng',lat,lng);
// this.getIndex();
// },
getPosition() {
const self = this;
console.log('2获取当前经纬度');
wx.getLocation({ //获取当前经纬度
type: 'wgs84', //返回可以用于wx.openLocation的经纬度,官方提示bug: iOS 6.3.30 type 参数不生效,只会返回 wgs84 类型的坐标信息
success: function (res) {
console.log('获取当前经纬度', res);
self.setData({lat: res.latitude, lng: res.longitude});
// app.loginCallback();
// app.loginCallback = res => {
// console.log('show-callback-res', res);
app.getLogin().then(function (res) {
console.log('res', res);
console.log('1');
self.getIndex(res.token);//获取首页
self.getIsWrite(); //判断是否已填写个人信息
});
// };
},
fail: function (res) {
console.log('定位失败', res)
console.log('重新调起授权,获取当前城市');
wx.getSetting({
success: (res) => {
// console.log('成功');
if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {//非初始化进入该页面,且未授权
console.log('非初始化进入该页面,且未授权');
wx.showModal({
title: '是否授权当前位置',
content: '需要获取您的地理位置,请确认授权,否则无法加载内容',
success: function (res) {
if (res.cancel) {
self.setData({
isshowCIty: false
})
wx.showToast({
title: '授权失败',
icon: 'none',
duration: 1000
})
} else if (res.confirm) {
wx.openSetting({
success: function (dataAu) {
if (dataAu.authSetting["scope.userLocation"] == true) {
wx.showToast({
title: '授权成功',
icon: 'success',
duration: 1000
})
//再次授权,调用getLocationt的API
getLocation(self);
} else {
wx.showToast({
title: '授权失败',
icon: 'none',
duration: 1000
})
}
}
})
}
}
})
} else if (res.authSetting['scope.userLocation'] == undefined) {//初始化进入
console.log('初始化进入');
getLocation(self);
} else { //授权后默认加载
console.log('授权后默认加载');
getLocation(self);
}
}
})
}
})
},
//获取经纬度
getLat() {
const self = this;
if(wx.getStorageSync('lat') === '' &&
wx.getStorageSync('lng') === '' &&
wx.getStorageSync('addr') === '') {
wx.getLocation({ //获取当前经纬度
type: 'wgs84', //返回可以用于wx.openLocation的经纬度,官方提示bug: iOS 6.3.30 type 参数不生效,只会返回 wgs84 类型的坐标信息
success: function (res) {
console.log('获取当前经纬度', res);
self.setData({lat: res.latitude, lng: res.longitude});
// app.loginCallback();
// app.loginCallback = res => {
// console.log('show-callback-res', res);
app.getLogin().then(function (res) {
console.log('res', res);
self.getIndex(res.token);//获取首页
self.getIsWrite(); //判断是否已填写个人信息
});
// };
}
});
console.log('没有经纬度', wx.getStorageSync('lat') === '');
if (wx.getStorageSync('lat') !== '' &&
wx.getStorageSync('lng') !== '' &&
wx.getStorageSync('addr') !== '') {
return
} else {
console.log('1获取当前经纬度');
self.getPosition()
}
// wx.setStorageSync('score',30);
console.log('score',wx.getStorageSync('score'));
if(wx.getStorageSync('score') !== '' && wx.getStorageSync('score')>=80) {
self.setData({show_gold_modal:true,});
}else if(wx.getStorageSync('score') !== '' && wx.getStorageSync('score')<80) {
self.setData({show_normal_modal:true})
console.log('score', wx.getStorageSync('score'));
if (wx.getStorageSync('score') !== '' && wx.getStorageSync('score') >= 80) {
self.setData({show_gold_modal: true,});
} else if (wx.getStorageSync('score') !== '' && wx.getStorageSync('score') < 80) {
self.setData({show_normal_modal: true})
}
},
//获取首页内容
... ... @@ -393,21 +478,23 @@ Page({
onLoad: function () {
// this.getCityList();
// this.getAbroadList();
this._doRefreshMasonry(this.data.items)
this._doRefreshMasonry(this.data.items);
// this.getPosition()
// this.getLat();//获取经纬度
},
onShow() {
if(wx.getStorageSync('isLogin') === true) {
if (wx.getStorageSync('isLogin')) {
this.getLat();//获取经纬度
}
if(wx.getStorageSync('lat') !== '' &&
if (wx.getStorageSync('lat') !== '' &&
wx.getStorageSync('lng') !== '' &&
wx.getStorageSync('addr') !== '') {
console.log('已选择城市');
this.setData({
is_city_change:true,
lat:wx.getStorageSync('lat'),
is_city_change: true,
lat: wx.getStorageSync('lat'),
lng: wx.getStorageSync('lng'),
addr:wx.getStorageSync('addr'),
addr: wx.getStorageSync('addr'),
});
this.getIndex()
}
... ... @@ -423,7 +510,7 @@ Page({
// name: "",
// address: ""
// })
console.log('index-show-isLogin',wx.getStorageSync('isLogin'));
console.log('index-show-isLogin', wx.getStorageSync('isLogin'));
// console.log(app.globalData.userInfo);
},
onPageScroll(e) {
... ... @@ -439,7 +526,7 @@ Page({
*/
onShareAppMessage: function () {
let self = this;
self.setData({show_gold_modal:false});
self.setData({show_gold_modal: false});
// 设置菜单中的转发按钮触发转发事件时的转发内容
var shareObj = {
title: '火柴西路', // 默认是小程序的名称(可以写slogan等)
... ... @@ -462,4 +549,30 @@ Page({
}
}
},
// onReady() {
// console.log('进入onReady');
// if (wx.getStorageSync('isLogin')) {
// this.getLat();//获取经纬度
// }
// wx.openSetting({
// success: function (dataAu) {
// console.log('进入onReady拉起授权',dataAu);
// if (dataAu.authSetting["scope.userLocation"]) {
// wx.showToast({
// title: '授权成功',
// icon: 'success',
// duration: 1000
// })
// //再次授权,调用getLocationt的API
// getLocation(self);
// } else {
// wx.showToast({
// title: '授权失败',
// icon: 'none',
// duration: 1000
// })
// }
// }
// })
// },
});
... ...