基于微信的网页开发笔记

一.实现只能在微信中打开页面

先对浏览器的UserAgent进行正则匹配,将不含有微信独有标识的视为其他浏览器;

如果不是则弹出警告框,阻止页面继续加载,并强行关闭页面;

方法如下:

var useragent = navigator.userAgent;

if (useragent.match(/MicroMessenger/i) != 'MicroMessenger') {

alert('已禁止本次访问:您必须使用微信内置浏览器访问本页面!');

var opened = window.open('about:blank', '_self');

opened.opener = null;

opened.close();

}

二. 了解如何得到用户信息:

详见微信公众平台开发文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432

第一步:根据appid和app_secret获取access_token

注:大写的部需要填写对应的值。

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

grant_type=client_credential为必填项;

第二步:获取授权,得到用户基本信息

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

wechat_redirect:如果直接在微信打开链接,可以不填此参数;如果需要重定向则必须要加上,它会引导页面指向其中redirect_uri代表的授权后回调的地址;

state:不是必填项,但是可以将能用得到的参数写进去。方便获取;

scope:值为snsapi_base时只能获取access_token和openID,不弹出确认授权信息的页面;值为snsapi_userinfo时可以获取更详细的用户资料,比如头像、昵称、性别等,但需用户点击并确认授权。

因为微信api获取用户信息的接口是通过传入的appid和access_token的值来获取的,所以可以实现不经过用户授权从而获取到用户的一些基本信息。并保存在数据库中

以下是根据token以及用户的openid获取用户基本信息的方法

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

三.正式开发步骤

第一步:申请测试号

网址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

完善接口域名及授权回调页面域名

接口域名示例:


点击修改填入回调域名:


第二步:在页面引入JS文件,样式也一并引入

<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

<link rel="stylesheet" href="https://res.wx.qq.com/open/libs/weui/1.1.0/weui.min.css">

<script type="text/javascript" src="https://res.wx.qq.com/open/libs/weuijs/1.1.1/weui.min.js"></script>

weui包含表单、基础组件、操作反馈等内容,详见https://weui.io/

第三步:在页面添加配置信息

x.config({

    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

    appId: '', // 必填,公众号的唯一标识

    timestamp: , // 必填,生成签名的时间戳

    nonceStr: '', // 必填,生成签名的随机串

    signature: '',// 必填,签名,

    jsApiList: [] // 必填,需要使用的JS接口列表,如图片选择,图片上传,图片预览等

});

还需要添加ready接口处理成功验证:

wx.ready(function() {

    var title = '致力于打造专业精准的变速箱数据查询系统';

    var desc = '油品匹配,用量,技师建议,换油位置及接头,换油养护套件等信息图例应有尽有,让变速箱养护不再困难';

    wx.checkJsApi({

        jsApiList: ['chooseImage','previewImage'], // 需要检测的JS接口列表

        success: function(res) {

            // 以键值对的形式返回,可用的api值true,不可用为false

            // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}

        }

    });

});

error接口处理失败验证:

wx.error(function(res){

    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

    alert("errorMSG:"+res.err_msg);

});

第四步:调用所需的接口

接下来就可以根据需求来调用相应的接口了。

接口参考微信JS-SDK说明文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

这里举个例子,选择图片接口。

wx.chooseImage({

    count: 4, // 默认9

    sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有

    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有

    success: function (res) {

        var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片

        toAddImgDiv(localIds,areaId)

    }

});

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容