{: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中的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×tamp=$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; }