uniapp踩坑:轨迹回放map的moveLong的success回调在ios和安卓的执行时间不同


官方链接: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();
		} 
	} 
});


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM