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