index1.vue 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. <template>
  2. <view class="content">
  3. <image class="logo" src="/static/logo.png"></image>
  4. <button type="primary" @click="auth()">授权</button>
  5. <button type="primary" @click="start()">开启定位</button>
  6. <button type="primary" @click="send()">发送定位</button>
  7. <button type="primary" @click="pause()">暂停定位</button>
  8. <button type="primary" @click="restart()">重启定位</button>
  9. <button type="primary" @click="stop()">结束定位</button>
  10. </view>
  11. </template>
  12. <script>
  13. //插件对象
  14. var sdkwx = uni.requireNativePlugin('Hdgq-LocSdkWX');
  15. export default {
  16. data() {
  17. return {
  18. title: 'Hello',
  19. vehicleNumber:"辽A77777",//车牌号
  20. driverName:"尚师傅",//司机姓名
  21. remark:"测试",//备注
  22. shippingNoteInfos:[{
  23. shippingNoteNumber:"CY20221027199993",//运单号
  24. serialNumber:"0000",//分单号
  25. startCountrySubdivisionCode:"210804",//起点位置行政区划代码,调 用 start/stop/pause/restart 时 必填,调用 send 非必填
  26. endCountrySubdivisionCode:"210804",//到达位置行政区划代码,调 用 start/stop/pause/restart 时 必填,调用 send 非必填
  27. startLongitude:"122.17153",//起点位置经度,调用 start/stop/pause/restart 时必 填,调用 send 非必填
  28. startLatitude:"40.266814",//起点位置纬度,调用 start/stop/pause/restart 时必 填,调用 send 非必填
  29. endLongitude:"122.146806",//到达位置经度,调用 start/stop/pause/restart 时必 填,调用 send 非必填
  30. endLatitude:"40.261078",//到达位置纬度,调用 start/stop/pause/restart 时必 填,调用 send 非必填
  31. startLocationText:"营口市",//起点地址文字描述,调用 start/stop/pause/restart 时必 填,调用 send 非必填
  32. endLocationText:"营口市",//到达地址文字描述,调用 start/stop/pause/restart 时必 填,调用 send 非必填
  33. vehicleNumber:"辽A12347",//车牌号,SDK 回调返回,调 用 start/stop/pause/restart/必 填,send 时非必填
  34. driverName:"尚师傅",//司机姓名,SDK 回调返回, 调用 start/stop/pause/restart/ 必填,send 时非必填
  35. interval:"5000"//请求时间间隔,SDK 回调返 回(单位 ms)
  36. }],//运单信息列表,一辆车运单数最大支持数为 10
  37. timer:""
  38. }
  39. },
  40. onLoad() {
  41. // console.log("appId-------------------",uni.getAccountInfoSync().miniProgram.appId)
  42. // let phoneType = uni.getSystemInfoSync().platform //判断手机类型
  43. // if( phoneType == "android"){
  44. // this.appId = "uni.UNIDCD13AC"
  45. // }else if(phoneType == "ios"){
  46. // this.appId = "uni.UNI9C76CB6"
  47. // }
  48. //隐私合规接口,HBuildx3.3.3及其以后的版本需要调用合规检查
  49. var isContains = true;//隐私权政策是否包含高德开平隐私权政策 true是包含
  50. var isShow = true;//隐私权政策是否弹窗展示告知用户 true是展示
  51. sdkwx.updatePrivacyShow(isContains, isShow);
  52. var isAgree = true;//隐私权政策是否取得用户同意 true是用户同意
  53. sdkwx.updatePrivacyAgree(isAgree);
  54. //检查定位权限
  55. sdkwx.checkLocationPermission(function(res){
  56. console.log(res);
  57. });
  58. },
  59. methods: {
  60. auth() {
  61. //授权
  62. var appId = "uni.UNI9C76CB6";//网络货运企业APP的唯一标识
  63. var appSecurity = "24c593b7037347e08857a6ab05fd231b0509f5bb7cb741078f524f506ad32db8";//网络货运企业在省平台申请的接入安全码
  64. var enterpriseSenderCode = "23106960";//网络货运企业在省平台申请的企业发送代码
  65. var environment = "debug";//环境:“debug”接入测试环境,“release”接入正式环境。
  66. sdkwx.auth(appId, appSecurity, enterpriseSenderCode, environment, function(res) {
  67. console.log(res);
  68. if (res.type == "onSuccess") {
  69. //成功
  70. console.log(res,"成功");
  71. } else if (res.type == "onFailure"){
  72. //失败
  73. var errorCode = res.data.errorCode;//错误码
  74. var errorMsg = res.data.errorMsg;//错误描述
  75. }
  76. uni.showModal({
  77. content:JSON.stringify(res)
  78. });
  79. });
  80. },
  81. start(){
  82. var that = this
  83. //开启定位
  84. var vehicleNumber= this.vehicleNumber;//车牌号
  85. var driverName = this.driverName;//司机姓名
  86. var remark = this.remark;//备注
  87. var shippingNoteInfos = this.shippingNoteInfos;//运单信息列表
  88. sdkwx.start(vehicleNumber, driverName, remark, shippingNoteInfos, function(res){
  89. console.log(res);
  90. if (res.type == "onSuccess") {
  91. //成功
  92. console.log("开启定位成功!!!")
  93. console.log(res)
  94. var shippingNoteInfos = res.data[0]; //运单信息列表
  95. console.log(shippingNoteInfos, "查看返回的时间")
  96. if (shippingNoteInfos) {
  97. let dateTtime = Number(shippingNoteInfos.interval + 1000)
  98. console.log("开始定时", dateTtime)
  99. that.timer = setTimeout(() => {
  100. console.log("定时")
  101. that.send()
  102. }, dateTtime);
  103. }
  104. } else if (res.type == "onFailure"){
  105. //失败
  106. var errorCode = res.data.errorCode;//错误码
  107. var errorMsg = res.data.errorMsg;//错误描述
  108. }
  109. });
  110. },
  111. send(){
  112. var that = this
  113. //发送定位
  114. var vehicleNumber= this.vehicleNumber;//车牌号
  115. var driverName = this.driverName;//司机姓名
  116. var remark = this.remark;//备注
  117. var shippingNoteInfos = this.shippingNoteInfos;//运单信息列表
  118. sdkwx.send(vehicleNumber, driverName, remark, shippingNoteInfos, function(res){
  119. var shippingNoteInfos = res.data[0]; //运单信息列表
  120. if (res.type == "onSuccess") {
  121. console.log("App.vue发送定位成功")
  122. console.log(res);
  123. console.log("查看返回的时间",shippingNoteInfos)
  124. if (shippingNoteInfos) {
  125. let dateTime = Number(shippingNoteInfos.interval + 1000)
  126. console.log("定时开始", dateTime)
  127. that.timer = setTimeout(() => {
  128. //TODO
  129. that.send()
  130. }, dateTime);
  131. }
  132. } else if (res.type == "onFailure") {//失败
  133. console.log("App.vue发送定位失败", res)
  134. var errorCode = res.data.errorCode; //错误码
  135. var errorMsg = res.data.errorMsg; //错误描述
  136. let dateTime1 = Number(shippingNoteInfos.interval + 1000)
  137. console.log("定时开始", dateTime1)
  138. that.timer = setTimeout(() => { //失败也需要定时上传定位(为了解决频繁调用接口问题)
  139. that.send()
  140. }, dateTime1);
  141. }
  142. });
  143. },
  144. pause(){
  145. //暂停定位
  146. var vehicleNumber= this.vehicleNumber;//车牌号
  147. var driverName = this.driverName;//司机姓名
  148. var remark = this.remark;//备注
  149. var shippingNoteInfos = this.shippingNoteInfos;//运单信息列表
  150. sdkwx.pause(vehicleNumber, driverName, remark, shippingNoteInfos, function(res) {
  151. console.log(res);
  152. if (res.type == "onSuccess") {
  153. //成功
  154. } else if (res.type == "onFailure"){
  155. //失败
  156. var errorCode = res.data.errorCode;//错误码
  157. var errorMsg = res.data.errorMsg;//错误描述
  158. }
  159. });
  160. },
  161. restart(){
  162. //重启定位
  163. var vehicleNumber= this.vehicleNumber;//车牌号
  164. var driverName = this.driverName;//司机姓名
  165. var remark = this.remark;//备注
  166. var shippingNoteInfos = this.shippingNoteInfos;//运单信息列表
  167. sdkwx.restart(vehicleNumber, driverName, remark, shippingNoteInfos, function(res) {
  168. console.log(res);
  169. if (res.type == "onSuccess") {
  170. //成功
  171. var shippingNoteInfos = res.data;//运单信息列表
  172. } else if (res.type == "onFailure"){
  173. //失败
  174. var errorCode = res.data.errorCode;//错误码
  175. var errorMsg = res.data.errorMsg;//错误描述
  176. }
  177. });
  178. },
  179. stop(){
  180. var that = this
  181. //结束定位
  182. var vehicleNumber= this.vehicleNumber;//车牌号
  183. var driverName = this.driverName;//司机姓名
  184. var remark = this.remark;//备注
  185. var shippingNoteInfos = this.shippingNoteInfos;//运单信息列表
  186. sdkwx.stop(vehicleNumber, driverName, remark, shippingNoteInfos, function(res) {
  187. console.log(res);
  188. if (res.type == "onSuccess") {
  189. clearInterval(that.timer)
  190. console.log("结束成功!!!",res)
  191. //成功
  192. } else if (res.type == "onFailure"){
  193. console.log("结束失败!!!",res)
  194. //失败
  195. var errorCode = res.data.errorCode;//错误码
  196. var errorMsg = res.data.errorMsg;//错误描述
  197. }
  198. });
  199. },
  200. }
  201. }
  202. </script>
  203. <style>
  204. .content {
  205. display: flex;
  206. flex-direction: column;
  207. align-items: center;
  208. justify-content: center;
  209. }
  210. .logo {
  211. height: 200rpx;
  212. width: 200rpx;
  213. margin-top: 200rpx;
  214. margin-left: auto;
  215. margin-right: auto;
  216. margin-bottom: 50rpx;
  217. }
  218. .text-area {
  219. display: flex;
  220. justify-content: center;
  221. }
  222. .title {
  223. font-size: 36rpx;
  224. color: #8f8f94;
  225. }
  226. </style>