微信小项目回顾

前几天又搞了一个微信小项目,来把,仍是来记录一下,做为一个历程,总结仍是要的,万一有同窗须要呢!javascript

微信版本判断

固然了,如今土豪都比较多,都是Iphone大大的有,都会自动更新软件,可是仍是有不少的安卓用户或者未开启自动更新的,微信新开放的JSSDK只支持6.0.1以上的,因此对于低版本的用户咱们仍是要提醒一下啊。html

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

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

微信开发的步骤

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

步骤一:绑定域名

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

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

步骤二:引入JS文件

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

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

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

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

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<!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>htdocs</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="renderer" content="webkit">
        <meta name="keywords" content=""/>
        <meta name="description" content="hockor"/>
    </head>
    <body>
    <img id="he" src="logo.png" alt=""/>
    <input type="button" value="yes" id="go">
    <div></div>
    <img id="hehe" src="" alt=""/>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
    <script>
        "use strict";
        function img2code(url, callback) {
            var img = new Image();
            img.src = url;
            var cvs = document.createElement("canvas");
            cvs.width = img.width;
            cvs.height = img.height;
            var ctx = cvs.getContext("2d");
            img.crossOrigin = "Anonymous";
                ctx.drawImage(img, 0, 0);
                window.imgData = cvs.toDataURL();
                callback(imgData)
        }
        $("#go").click(function(){
            img2code($("#he").attr("src"), function (imgData) {
                imgData = imgData.substr(22);
                $("div").html(imgData)
                $("#hehe").attr("src","data:image/png;base64,"+imgData)
            })
        })
    </script>
    </body>
    </html>

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

我的原创,转载请注明

相关文章
相关标签/搜索