{:wx_jssdk_config("false")}  //最主要的这一句 没有这一句在微信浏览器里是无法调用的定位功能的。下面有这个方法说明
<script>
wx.ready(function(){
wx.getLocation({
type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
success: function (res) {
var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
var data = {
"lat":latitude,
"lng": longitude,
};
// console.log(data);
$.ajax({
url:'{:U("Index/lat_lng_add")}',
type: "POST",
data: data,
success: function (data) {}
});
}
})
});
</script>

以下代码是需要放在function.php中的

/**
* 直接生成微信jssdk_config
* @echo string $jssdk Jssdk_config
* @author 5heAtMin9 <sheatming@foxmail.com>
*/ function wx_jssdk_config($debug='true'){
$getSignPackage = wx_getSignPackage();
$jssdk = '<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>';
$jssdk .= '<script>
wx.config({
debug: '.$debug.',
appId: "'.$getSignPackage['appId'].'",
timestamp: "'.$getSignPackage['timestamp'].'",
nonceStr: "'.$getSignPackage['nonceStr'].'",
signature: "'.$getSignPackage['signature'].'",
jsApiList: ["checkJsApi","onMenuShareTimeline","onMenuShareAppMessage","onMenuShareQQ", "onMenuShareWeibo","onMenuShareQZone","hideMenuItems","showMenuItems","hideAllNonBaseMenuItem","showAllNonBaseMenuItem","translateVoice","startRecord","stopRecord","onVoiceRecordEnd","playVoice","onVoicePlayEnd","pauseVoice","stopVoice","uploadVoice","downloadVoice","chooseImage","previewImage","uploadImage","downloadImage","getNetworkType","openLocation","getLocation","hideOptionMenu","showOptionMenu","closeWindow","scanQRCode","chooseWXPay","openProductSpecificView","addCard","chooseCard","openCard"],
});
</script>';
echo $jssdk;
} /**
* Jssdk所需信息
* @return array $signPackage Jssdk所需信息
* @author 5heAtMin9 <sheatming@foxmail.com>
*/ function wx_getSignPackage()
{
$jsapiTicket = wx_getJsApiTicket();
// 注意 URL 一定要动态获取,不能 hardcode.
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$timestamp = time();
$nonceStr = getRandom(32);
// 这里参数的顺序要按照 key 值 ASCII 码升序排序
$string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";
$signature = sha1($string);
$signPackage = array(
"appId" => C('WX_APPID'),
"nonceStr" => $nonceStr,
"timestamp" => $timestamp,
"url" => $url,
"signature" => $signature,
"rawString" => $string
);
return $signPackage;
} function wx_getJsApiTicket() {
$jturl = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='.wx_get_access_token() -> access_token.'&type=jsapi';
$ticket = json_decode(os_get($jturl));
return $ticket->ticket;
}

最新文章

  1. zabbix 3.0 完全安装全解!
  2. Codeforces CF#628 Education 8 D. Magic Numbers
  3. ORA-12705问题解决过程
  4. 浅谈T-SQL中的派生表和CTE
  5. 用一个案列详细讲解UITextFiled
  6. html5实现微信摇一摇功能
  7. UESTC 886 方老师金币堆 --合并石子DP
  8. poj 2240 Arbitrage bellman-ford算法
  9. [转]以新浪为例浅谈XSS
  10. ubuntu 16.04.2 源码安装gitlab并且利用runner持续集成
  11. 201521123018 《Java程序设计》第12周学习总结
  12. selenium元素定位
  13. POJ 3347 Kadj Squares (计算几何)
  14. 洛谷P3627[APOI2009] (讨厌的)抢掠计划
  15. WebGl配置
  16. Hadoop简介与分布式安装
  17. Jenkins 简单配置
  18. binlog2sql闪回恢复数据
  19. WEB应用从服务器主动推送Data到客户端有那些方式?
  20. 可视化库-seaborn-单变量绘图(第五天)

热门文章

  1. WSDL测试webservice接口记录
  2. 使用Deeplearning4j进行GPU训练时,出错的解决方法
  3. libfacedetection简单使用记录
  4. 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题
  5. Windows利用文件夹映射来同步文件
  6. iOS Message from debugger: Terminated due to memory issue ~解决方法
  7. docker 命令集
  8. Atitit s2018.2 s2 doc list on home ntpc.docx&#160; \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 讯飞科大 语音云.docx \Atitit 代码托管与虚拟主机.docx \Atitit 企业文化 每日心灵 鸡汤 值班 发布.docx \Atitit 几大研发体系对比 Stage-Gat
  9. Android CPU类型及预定义的宏
  10. Variable number of arguments (Varargs)