状态的维护由乘客端app负责,sdk负责接收状态,而不维护状态,也不对状态的转换做限制。sdk在不同的状态下对应不同的策略略。初始化之后的订单状态默认是未知状态。当订 单的状态改变之后,乘客端app应当通过更改 status 属性的值,来通知司乘同显sdk。
例:
/**订单状态的枚举类型- bmk_sctx_order_status_unspecified: 未指定状态,sdk初始化之后的状态- bmk_sctx_order_status_readyforservice: 待服务- bmk_sctx_order_status_pickuppassenger: 司机驱车前往订单起点接乘客- bmk_sctx_order_status_waitpassenger: 司机已到订单起点,等待乘客上车- bmk_sctx_order_status_gotodestination: 乘客已上车,司机送乘客去订单终点- bmk_sctx_order_status_ordercomplete: 订单已结束*/typedef ns_enum(nsinteger,bmksctxorderstatus){bmk_sctx_order_status_unspecified=0,bmk_sctx_order_status_readyforservice=1,bmk_sctx_order_status_pickuppassenger=2,bmk_sctx_order_status_waitpassenger=3,bmk_sctx_order_status_gotodestination=4,bmk_sctx_order_status_ordercomplete=5,};self.sctxmanager.status= status;
每个订单对应一个 bmksctxpassengermanager 实例,但同一时刻只能有一个司乘同显服务在运行。进入a订单的司乘同显页面时,实例化a订单对应的 bmksctxpassengermanager 实例;当需要进⼊入b订单的司乘同显页面时,需要先保证a订单对应的 bmksctxpassengermanager 实例已经析构,再实例化b订单对应的 bmksctxpassengermanager 实例。
// 停止服务并立即销毁[self.sctxmanager onpause];self.sctxmanager= nil;
乘客端app通过调用 bmksctxpassengermanager 对象的
/**乘客变更订单终点信息@param endpointinfo 新的订单终点信息@param coordtype 终点经纬度坐标类型,建议与全局设置的坐标系(默认百度坐标系)一致*/-(void)updateorderendpointinfo:(bmksctxpoipointinfo*)endpointinfo coordtype:(bmksctxcoordtype)coordtype;
方法实现变更目的地功能, sdk通过 bmksctxpassengermanagerdelegate 中的
/**sdk通过此方法告知开发者修改订单终点信息是否成功@param error 错误码,0:成功,其他:失败*/-(void)onupdateendpositioninforesult:(nserror*)error;
回调方法告知开发者修改订单终点信息是否成功。
上一篇
下一篇
本篇文章对您是否有帮助?