一個專案需要在微信裡獲得當前位置,於是就開始了我的微信開發之旅...
#微信JSSDK說明文檔
mp. weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
JSSDK使用步驟
#步驟一:綁定網域名稱##綁定網域要求是一級網域.但是使用的時候可以二級網域下的網頁仍可使用該介面.
步驟二:引入JS檔http://res.wx.qq.com/open /js/jweixin-1.0.0.js
如果你的頁面啟用了https,務必引入res.wx.qq.com/open/js/jweixin-1.0.0.js
#步驟三:透過config介面注入權限驗證設定設定這個會比較麻煩,最後講.
wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 });
步驟四:透過ready介面處理成功驗證
wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 });
步驟五:透過error介面處理失敗驗證
wx.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 });
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 speed = res.speed; // 速度,以米/每秒计 var accuracy = res.accuracy; // 位置精度 } }); });
var wxConfigJson = { debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wx821bb7356e99a3a7', // 必填,公众号的唯一标识 timestamp: 1446184841, // 必填,生成签名的时间戳 nonceStr: '80262bec-7cd2-4b03-b366-97fab6e91cdd', // 必填,生成签名的随机串 signature: 'fd017d631d63cef32d5f25ea276911bcb0a29782', // 必填,签名,见附录1 jsApiList: ['getLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2};@Html.Raw(new WeChatJS_SDK_Config().GetConfig()) 生成上面的wxConfigJson
1 public class WeChatJS_SDK_Config 2 { 3 private string _appId; 4 private int _timestamp ;// 必填,生成签名的时间戳 5 private string _nonceStr ;// 必填,生成签名的随机串 6 private string _url; 7 private string _sign; 8 9 public WeChatJS_SDK_Config() 10 { 11 _appId = AccountConfig._appID; 12 _timestamp = Core.GetTimestamp(); 13 _nonceStr = Guid.NewGuid().ToString(); 14 _url = HttpContext.Current.Request.Url.ToString(); 15 _sign = 16 String.Format("jsapi_ticket={0}&noncestr={1}×tamp={2}&url={3}", Jsapi_Ticket.GetJsapi_Ticket(), 17 _nonceStr, _timestamp, _url).Md5Entry("sha1").ToLower(); 18 } 19 20 /* Url方法的区别 21 *@Html.Raw("var originalString='"+HttpContext.Current.Request.Url.OriginalString+"';") 22 @Html.Raw("var rawUrl='"+HttpContext.Current.Request.RawUrl+"';") 23 @Html.Raw("var url='"+HttpContext.Current.Request.Url+"';") 24 25 var originalString = 'http://xb.hnjdkj.cn:80/index/home'; 26 var rawUrl = '/index/home'; 27 var url = 'http://xb.hnjdkj.cn/index/home';*@ 28 */ 29 public string GetConfig() 30 { 31 var res = string.Format( 32 "var wxConfigJson = {{debug: {0}, appId: '{1}', timestamp: {2},nonceStr: '{3}',signature: '{4}',jsApiList: ['getLocation'] }};", Kits.AppSettings("WeChatDebug"), _appId, _timestamp, _nonceStr, _sign); 33 return res; 34 } 35 36 }
以上是微信開發入門(jssdk開發)的詳細內容。更多資訊請關注PHP中文網其他相關文章!