微信小项目回顾

前几天又搞了一个微信小项目,来把,还是来记录一下,作为一个历程,总结还是要的,万一有同学需要呢!

微信版本判断

当然了,现在土豪都比较多,都是Iphone大大的有,都会自动更新软件,但是还是有很多的安卓用户或者未开启自动更新的,微信新开放的JSSDK只支持6.0.1以上的,所以对于低版本的用户我们还是要提醒一下啊。

在网上查了一下 ,下面是个比较好的判断方法:

JavaScriptvar wechatInfo = navigator.userAgent.match(/MicroMessenger\/([\d\.]+)/i) ;  
if( !wechatInfo ) {  
    alert("本活动仅支持微信");  
} else if ( wechatInfo[1] < "6.0" ) {  
    alert("本活动仅支持微信6.0以上版本");
}  

微信开发的步骤

首先微信有各种号,什么订阅号,公众号,认证号。乱七八糟的,我也不搞不清楚具体区别,反正认证号要花300大洋去认证,这点我倒是记得蛮熟。。。首先你要有个号,然后你要去填一下服务器地址。详情见 微信开发者文档

步骤一:绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

备注:登录后可在“开发者中心”查看对应的接口权限。

步骤二:引入JS文件

在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js

备注:支持使用 AMD/CMD 标准模块加载方法加载

步骤三:通过config接口注入权限验证配置

所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。

javascriptwx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: '', // 必填,公众号的唯一标识,个人设置中获得
    timestamp: , // 必填,生成签名的时间戳,个人设置中获得
    nonceStr: '', // 必填,生成签名的随机串,个人设置中获得
    signature: '',// 必填,签名,见附录1
    jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});

步骤四:通过ready接口处理成功验证

javascriptwx.ready(function(){

    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

接口调用说明

所有接口通过wx对象(也可使用jWeixin对象)来调用,参数是一个对象,除了每个接口本身需要传的参数之外,还有以下通用参数:

success:接口调用成功时执行的回调函数。
fail:接口调用失败时执行的回调函数。
complete:接口调用完成时执行的回调函数,无论成功或失败都会执行。
cancel:用户点击取消时的回调函数,仅部分有用户取消操作的api才会用到。
trigger: 监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中的相关接口。

遇到的一些坑

  1. 都放在wx.ready(function(){})里面去执行。不然你会遇到分享中的设置无效的问题
  2. 微信有个uploadImage接口,用于上传图片到微信服务器的,但是有时候在安卓下你会发现选择图片以后怎么都没有反应的情况,这时候,不妨试试用setTimeout()来包裹这个函数。可能你就会解决掉你的问题。感谢segmentfault,感谢@Dali,我当时被这个问题纠结了好久好久。。。
  3. 温习了一下生成指定范围随机数

    window.ranNum = parseInt(Math.random() * (max - min + 1) - min, 10);
    
  4. 温习了一下图片转base编码

    html
    
    
        
        htdocs
        
        
        
        
    
    
    
    
    

另外在学习中也可以参考一下微信的demohttp://demo.open.weixin.qq.com/jssdk,蛮实用的!

个人原创,转载请注明

你可能感兴趣的:(微信开发,jssdk)