轨迹回放map的moveLong的success回调在ios和安卓的执行时间不同,导致真机ios上轨迹回放失效。
在安卓端success和complete回调触发条件为动画执行结束或相同id的移动物有了新的动画;
在ios端success和complete回调触发条件为移动物开始动画后;
表现为movealong时间无效,直接就结束了。
let platform = uni.getSystemInfoSync().platform;
let isIos = platform == 'ios' ? true : false;
console.log('isIos',isIos)
let self=this
this.mapCtx.moveAlong({
markerId: 0,
autoRotation: true,
path: this.points.map(({
longitude,
latitude
}) => ({
longitude,
latitude,
})),
duration: 4000,
// complete: () => {
// // console.log('complete=======>')
// this.moving = false;
// },
complete(res) { // ios是开始动画就会执行,安卓手机是在动画结束后执行success
if (isIos) {
// 如果是ios则执行定时器,
// 五秒后执行动画结束后的方法
let timer = setTimeout(() => {
clearTimeout(timer)
//动画结束后的方法
// moving 为配合points进行检测渐变改变points颜色
self.moving = false;
}, 4000)
}
else { //如果是安卓直接执行即可
self.moving = false;
}
}
});
网友评论