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