作者 lihan
1 个管道 的构建 通过 耗费 1 秒

自动定位功能

@@ -46,8 +46,11 @@ class ActivityController extends HomeBaseController @@ -46,8 +46,11 @@ class ActivityController extends HomeBaseController
46 echo json_encode(['data' => $result, 'code' => 20000]); 46 echo json_encode(['data' => $result, 'code' => 20000]);
47 exit(); 47 exit();
48 } else { 48 } else {
  49 + require_once EXTEND_PATH . '/WeChatCommon.php';
  50 + $wx = new \WeChatCommon();
49 return $this->fetch(':_list', [ 51 return $this->fetch(':_list', [
50 - 'result' => $result 52 + 'result' => $result,
  53 + 'js_sdk' => $wx->js_sdk()
51 ]); 54 ]);
52 } 55 }
53 } 56 }
@@ -146,4 +146,14 @@ class IndexController extends HomeBaseController @@ -146,4 +146,14 @@ class IndexController extends HomeBaseController
146 } 146 }
147 } 147 }
148 148
  149 + //更新用户经纬度
  150 + public function updatePosition() {
  151 + $position = [
  152 + 'id' => session('user.id'),
  153 + 'lat' => request()->param('lat'),
  154 + 'lng' => request()->param('lng')
  155 + ];
  156 + Db::name('user')->update($position);
  157 + }
  158 +
149 } 159 }
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
12 <script type="text/javascript" src="__TMPL__/static/assets/font/iconfont.js"></script> 12 <script type="text/javascript" src="__TMPL__/static/assets/font/iconfont.js"></script>
13 <script type="text/javascript" src="__TMPL__/static/js/base.js"></script> 13 <script type="text/javascript" src="__TMPL__/static/js/base.js"></script>
14 <link rel="stylesheet" href="__TMPL__/static/css/Peripheral-short-term.css" /> 14 <link rel="stylesheet" href="__TMPL__/static/css/Peripheral-short-term.css" />
  15 + <script src="http://res2.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
15 <style type="text/css"> 16 <style type="text/css">
16 .swiper-container { 17 .swiper-container {
17 height: 3.6rem; 18 height: 3.6rem;
@@ -172,5 +173,37 @@ @@ -172,5 +173,37 @@
172 }) 173 })
173 }); 174 });
174 175
  176 + wx.config({
  177 + debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  178 + appId: '{$js_sdk.appId}', // 必填,公众号的唯一标识
  179 + timestamp: '{$js_sdk.timestamp}', // 必填,生成签名的时间戳
  180 + nonceStr: '{$js_sdk.nonceStr}', // 必填,生成签名的随机串
  181 + signature: '{$js_sdk.signature}',// 必填,签名
  182 + jsApiList: [
  183 + 'getLocation'
  184 + ] // 必填,需要使用的JS接口列表
  185 + });
  186 +
  187 + wx.ready(function(){
  188 + // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
  189 + wx.getLocation({
  190 + type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
  191 + success: function (res) {
  192 + var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
  193 + var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
  194 + var speed = res.speed; // 速度,以米/每秒计
  195 + var accuracy = res.accuracy; // 位置精度
  196 + $.ajax({
  197 + url:"{:url('portal/Index/updatePosition')}",
  198 + data:{
  199 + lat:latitude,
  200 + lng:longitude
  201 + },
  202 + type:"POST",
  203 + dataType:"JSON"
  204 + })
  205 + }
  206 + });
  207 + });
175 208
176 </script> 209 </script>