一个项目需要在微信里获得当前位置,于是就开始了我的微信开发之旅...
微信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; // 位置精度 }});
});
具体的还是看官方文档清楚些.
关于步骤三的config说明:
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
下面是我写的wechatjs_sdk_config类,见笑了.
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 }
【相关推荐】
1. 微信公众号平台源码下载
2. 微信开发之生命周期函数的实例教程
3. 微信开发之传值取值的几种方法介绍
4. 详解微信小程序支付功能开发错误总结
以上就是微信开发入门(jssdk开发)的详细内容。