使用微信考勤,有很多企業號應用都有,但如何實現呢?
核心有有兩個,1其實就是獲取用戶位置,其實這個可以使用百度地圖的API,當然其他的也可以,微信自己的地圖實在是太差了,沒有考慮。當然地理位置有偏差,如果需要進一步處理,我還沒有找到合適的辦法。當然了這些也只是表明曾經在某一個位置,并不表明一直都在,就好像打了卡,并不代表一直都在公司上班,也可能打卡后,就逛街去了。
2在獲得了用戶的位置信息后,在服務端如何知道到底是哪個員工的考勤呢?
1其實就是獲取用戶位置
使用百度地圖的API很簡單,[參考](http://developer.baidu.com/map/index.php?title=webcomponent/guide/geo)
?需要注意的是一定要把百度地圖的API的腳本放在?lbs-geo標簽之下,否則就會有腳本錯誤。
例如:Cannot read property 'addEventListener' of null
核心代碼:
~~~
<div class="am-form-group">
<label for="doc-ta-1">所在位置 </label>
<p>
<lbs-geo id="geo" city="北京" enable-modified="false"></lbs-geo>
<input type="hidden" id="address" class="am-form-field am-round" name="address"/>
<input type="hidden" id="lng" class="am-form-field am-round" name="lng"/>
<input type="hidden" id="lat" class="am-form-field am-round" name="lat"/>
</p>
</div>
<script>
// 先獲取元素
var lbsGeo = document.getElementById('geo');
//監聽定位失敗事件 geofail
lbsGeo.addEventListener("geofail", function (evt) {
alert("fail");
});
//監聽定位成功事件 geosuccess
lbsGeo.addEventListener("geosuccess", function (evt) {
var address = evt.detail.address;
var coords = evt.detail.coords;
var x = coords.lng;
var y = coords.lat;
// alert("地址:" + address);
// alert("地理坐標:" + x + ',' + y);
$("#address").val(address);
$("#lng").val(x);
$("#lat").val(y);
});
</script>
~~~
2獲取用戶信息,其實就是把微信的用戶相關信息和系統中的相關信息關聯起來。
這個可以參考[微信企業號開發:微信用戶信息和web網頁的session的關系](http://blog.csdn.net/xuexiaodong009/article/details/47747569)
實現效果
