官方链接:https://uniapp.dcloud.io/api/location/map?id=createmapcontext
微信小程序实现轨迹轨迹回放功能时使用了moveAlong方法,有需要在动画执行结束后进行一些处理,使用了moveAlong的success回调,但是success回调在ios端和安卓的执行时间不同:
在安卓端success和complete回调触发条件为动画执行结束或相同id的移动物有了新的动画;
在ios端success和complete回调触发条件为移动物开始动画后;
那ios端应该如何执行动画结束后的处理呢?
使用定时器!!!
在moveAlong方法中有必填的durtion属性,代表动画执行时间,对于ios端可以在success中写一个定时器,时间设置为durtion的值,即可。
首先在onLoad方法中判断是否为ios,
let platform = uni.getSystemInfoSync().platform;
this.isIos = platform == 'ios' ? true : false;
this._mapContext.moveAlong({
markerId: 1,
path: this.linePoint,
duration: 5000, //假设动画执行5秒
success(res) { // ios是开始动画就会执行,安卓手机是在动画结束后执行success
if (_this.isIos) { 如果是ios则执行定时器,五秒后执行动画结束后的方法
_this.intervalID = setTimeout(() => {
//动画结束后的方法
_this.afterPolyLine();
},5000)
} else { //如果是安卓直接执行即可
_this.afterPolyLine();
}
}
});