# xbr_network_freight **Repository Path**: mywentop/xbr_network_freight ## Basic Information - **Project Name**: xbr_network_freight - **Description**: FLUTTER 网络货运 SDK2.0 插件 - **Primary Language**: Dart - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-09 - **Last Updated**: 2025-07-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # xbr_network_freight ## 说明 #### 物流-部货运:网络货运SDK #### 调试版本就可以完成网络货运接入申请,并附带电子围栏。 ## 截图 | | | | | | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | | | | | | ## 调试 ### 1. 打开版本列表,下载最新版本工程 ### 2. androidStudio 打开工程,flutter版本不得低于2.2.3 ### 3. 打开 example > lib > auth > yilin_auth.dart, 填写自己公司申请的网络货运相应账号 ### 4. 点击运行,安装APP ###### (一)标准一车一单,正常运输: (1)点击右上角添加一条运单,注意起点设置在当前位置, (2)点击开始运输,选择运单,确认开始。 (3)驾车前往收货点,必须正常行驶,中途APP不要关闭。 (4)到达收货围栏范围,点击结束运输即可。 ###### (二)一车多单 (1)点击右上角添加多条运单,起点可以不设置在当前位置,但是模拟时不方便。 (2)驾车前往对应的装货点,点击开始运输,选择围栏内的运单(可以一次多选,也可以分批选),确认开始, (3)依次前往对应的装货点,完成(2),让运单全部装货完成 (4)依次前往收货点,选择围栏内的运单(可多选),点击结束运输即可 ###### (三)中途换车 (1)右上角添加一条运单(多条也行)点击开始运输 (2)点击暂停运输,并标记暂停原因(要记下来选的哪一个) (3)点击右上角换车,根据标记的原因,换车只修改车牌号,换人只修改司机,换人换车两个都修改,换手机需要先记下运单号+分单号+运单起点+终点(点击运单列表项可以查看运单信息),替换手机后点击右上角添加相同的运单数据,点击开始运输即可(正常应该走重启运单,但其实两个接口都可以。不建议做换手机测试,太麻烦)。 (4)点击恢复运单,选择之前标记的原因,重新开始。 (5)到达收货围栏结束运输即可 ###### (四)临时更换收货地址 (1)正常开始一条运单,参考上面 (2)未达到收货点,点击强制结束,选择需要强制结束的订单 (3)选择强制结束的原因即可 ## 开始使用 #### 1. 引入:xbr_network_freight.3.0.0 #### 2. APP进入时完成FreightTask初始化,做好懒加载 ```dart freightTask = FreightTask.getInstance( tmsAppId: Yilin.tmsAppId, appSecurity: Yilin.appSecurity, enterpriseSenderCode: Yilin.enterpriseSenderCode, environment: Yilin.environment, taskListener: (bool success, String? code, String? msg, List? infos) { //这里是日志回调接口,用于打印任务日志 }, ); ``` #### 3. APP进入时:取出平台后台服务器的运输中的运单数据,构造(localInfoList)数据,传进认证接口 ps:这里有个坑,android认证后是可以返回运单全部数据的,可以不用后台数据,但ios只返回运单的单号+分单号,认证后是没办法运行的,所以这里统一从后台录入数据。认证后有运输中的运单任务系统会自动提交发送定位,send。 ```dart freightTask?.authInitRun(localInfoList:localInfoList,successBack: (code, msg, infos){ //认证成功,返回的 infos 状态已全部是已开始状态,如果没有运行中的订单,这里就不用管了 //如果infos大小不为空,需要保存 infos,同步到运单也行 }); ``` #### 4. 新运单开始,运单开始成功任务系统自动发送定位,send。 ```dart freightTask?.startRunTask(shippingNoteInfos: list, remark: remark,successBack: (code, msg, infos) { //运单开始传入 list运单信息,如果是一车多单,remark要标记 [99]车牌号,list如果起点一致可以一起传,如果起点不一致就到达装货点分开传,传一个也不影响一车多单 //但是必须在结束前,保证全部开始一车多单的所有运单 //开始运单要设置电子围栏,在发货点位置附近才能点击开始运单,否则打印的运单轨迹会出问题。 }); ``` #### 5. 恢复运单,运单恢复成功任务系统自动发送定位,send。 ```dart freightTask?.reStartRunTask(shippingNoteInfos: list,remark: value, successBack: (code, msg,infos) { //暂停运单后,平台运单体系运单是暂停状态,可以恢复,根据运单标记的状态,替换相应数据后传入 list //注意:运单暂停>恢复运单 标记要一致,操作场景要一致(标记换车就要换车,标记换人就要换司机,标记换手机就要换手机)。 //标记换手机时:在上一台手机上点击暂停运单,remark标记为 [02] 换手机,并关闭手机,打开新手机,获取平台运单暂停数据, //点击恢复运单,remark标记为 [02] 换手机 //如果旧手机无法暂停怎么办,突然没电,突然死机,损坏等意外:直接在新手机上开始运单(不用恢复,因为旧手机没有标记暂停,运单应该还是标记为开始运行状态, //利用平台运单体系,重新执行开始运输运单(只要单号相同,最终轨迹线还是会连在一起的)。 //但是注意:平台要判断,平台标记运输完成的运单,即使SDK初始化时显示在运行中,也不能执行发送定位 //(这个插件只要把平台数据传入认证(authInitRun),插件是不会执行平台没有的运单的,但要保证传入的运单是运行中的)。 }); ``` #### 6. 结束运单 定位也会自动停止 ```dart freightTask?.stopRunTask(shippingNoteInfos: list,remark: value, successBack: (code, msg,infos) { //正常情况下要利用电子围栏判断运单能不能结束,否则如果在非地点结束的话又没有标记运单,是要被查的, //只要在非收货地点附近(我设的是300米,运管要求应该没有这么严)结束运单,必须标记非正常结束的原因([00]车辆损坏 [01]货主临时改变收货位置)。 //正常在收货围栏结束后,可以登录运管系统查看运单轨迹。 }); ``` #### 7. 退出登录/关闭网络货运任务系统 视情况关闭 ```dart freightTask?.disposeTask();//关闭网络货运任务系统,FreightTask controller?.disponse();//地图控制器 uiController.dispose();//地图绘制控制器 XbrGaodeLocation.instance().destroyLocation();//销毁围栏中使用的定位 ``` ## 参与贡献 1. 本插件 由小镖人开发团队 开发并维护 2. 贵州省网络货运社区平台 已上线,免费帮助物流企业完成网络货运转型,免费提供网络货运材料,所有APP,软件免费提供,45天内拿证 3. 小镖人网络货运平台 系 贵州省网络货运孵化平台 子平台,欢迎货主用户、车主用户入驻,共享政策福利 4. 在 贵州省网络货运社区平台 完成孵化的企业,产品名称、LOGO、APP支持自定义,完全免费,但是需植入 由小镖人开发的 社区系统,社区系统由小镖人维护,但可以与孵化平台共享收益, 且孵化平台企业独立运营自己的产品,社区平台不参与孵化平台的其他业务收益。 5. 申请网络货运孵化 请移步 https://www.yilinwuliu.cn ,或直接联系平台业务专员:程|15286063702 #### SDK插件版本 高德版: 2.1.1 代码混淆: #网络货运SDK ```proguard-rules.pro -keep class org.bouncycastle.**{*;} -keep class org.apacha.commons.lang3.**{*;} -keep class com.alibaba.fastjson.**{*;} -keep class com.lzy.okgo.model.**{*;} -keep class com.lzy.okgo.model.**{*;} -keep class com.hdgq.locationlib.**{*;} ``` This project is a starting point for a Flutter [plug-in package](https://flutter.dev/developing-packages/), a specialized package that includes platform-specific implementation code for Android and/or iOS. For help getting started with Flutter development, view the [online documentation](https://flutter.dev/docs), which offers tutorials, samples, guidance on mobile development, and a full API reference.