小程序
小游戏
企业微信
微信支付
扫描小程序码分享
利用微信内置地图进行实际开发时,发现熄屏后再次触发show函数时,show函数提示被触发,在show函数中放的是一个定时器,定时器中放着一个API为wx.getLocation,show函数被触发后,定时器也被触发,可是wx.getLocation没有被触发,并且一直报错,错误信息为errCode: -1, errMsg: "getLocation:fail:timeout"。
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
onShow: function() {
var self = this;
if (key1) {
if (timer) {
clearInterval(timer);
};
console.log('show');
self.shishiyundong('show');
///
shishiyundong: function(kr) {
if (kr.type == 'tap') {
kr = 'yundong';
}
var that = this;
var objj;
timer = setInterval(function() {
wx.getLocation({
type: "gcj02",
success: function(res) {
// console.log(res);
dangqian = res;
objj = {
latitude: dangqian.latitude,
longitude: dangqian.longitude
plll.push(objj);
console.log(objj, plll, kr);
//设置polyline属性,将路线显示出来
that.setData({
polyline: [{
points: plll,
color: '#000000',
width: 2,
}],
marker: [{
markerId: 0,
iconPath: '../image/wz.png',
longitude: objj.longitude,
latitude: objj.latitude,
width: 30,
height: 30,
});
},
fail: function(res) {}
}, 1000);
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
shishiyundong方法里第一行console.log,都不会打印吗?
会打印,但是下面就不会执行,经过不断测试,好像onshow里面不能启动定时器,把定时器去掉就可以用,可是我需要定时器,不知道为什么onshow里面不能开启定时器
setInterval 方法里第一行加console.log 没打印吗?
timer定义在page外面的吗
timer在page里一个方法的里面,刚刚试了好像setinterval执行,console.log有反应,循环,但是wx.getLocation没用
贴下你onShow的代码呢
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
onShow: function() {
var self = this;
if (key1) {
if (timer) {
clearInterval(timer);
};
console.log('show');
self.shishiyundong('show');
///
shishiyundong: function(kr) {
if (kr.type == 'tap') {
kr = 'yundong';
}
var that = this;
var objj;
timer = setInterval(function() {
wx.getLocation({
type: "gcj02",
success: function(res) {
// console.log(res);
dangqian = res;
objj = {
latitude: dangqian.latitude,
longitude: dangqian.longitude
};
plll.push(objj);
console.log(objj, plll, kr);
//设置polyline属性,将路线显示出来
that.setData({
polyline: [{
points: plll,
color: '#000000',
width: 2,
}],
marker: [{
markerId: 0,
iconPath: '../image/wz.png',
longitude: objj.longitude,
latitude: objj.latitude,
width: 30,
height: 30,
}],
});
},
fail: function(res) {}
});
}, 1000);
},
shishiyundong方法里第一行console.log,都不会打印吗?
会打印,但是下面就不会执行,经过不断测试,好像onshow里面不能启动定时器,把定时器去掉就可以用,可是我需要定时器,不知道为什么onshow里面不能开启定时器
setInterval 方法里第一行加console.log 没打印吗?
timer定义在page外面的吗
timer在page里一个方法的里面,刚刚试了好像setinterval执行,console.log有反应,循环,但是wx.getLocation没用
贴下你onShow的代码呢