Java微信公众平台开发(十二)--微信JSSDK的使用
在前面的文章中有介绍到我们在微信web开发过程中常常用到的 【微信JSSDK中Config配置】,但是我们在真正的使用中我们不仅仅只是为了配置Config而已,而是要在我们的项目中真正去使用微信JS-SDK给我们带来便捷,那么这里我们就简述如何在微信web开发中使用必要的方法!在开始之前,上一篇有朋友有疑问,如何在手机端显示,这里我们来补充一下:
这里的前提是你要跟着做到,浏览器显示返回200 状态码。
(一)修改我们的menue。
打开我们的menueMain,将Button修改,修改后的代码如下:
@Component
public class MenuMain {
public void createMenu(){
ViewButton cbt=new ViewButton();
cbt.setUrl("http://zqfbk.iok.la/mychat/jssdkconfig.jsp");
cbt.setName("测试");
cbt.setType("view"); ViewButton vbt=new ViewButton();
vbt.setUrl("https://www.cnblogs.com/gede");
vbt.setName("博客");
vbt.setType("view"); JSONArray sub_button=new JSONArray();
sub_button.add(cbt);
sub_button.add(vbt); JSONObject buttonOne=new JSONObject();
buttonOne.put("name", "菜单");
buttonOne.put("sub_button", sub_button); JSONArray button=new JSONArray();
button.add(vbt);
button.add(buttonOne);
button.add(cbt); JSONObject menujson=new JSONObject();
menujson.put("button", button);
System.out.println(menujson); //这里为请求接口的url +号后面的是token,这里就不做过多对token获取的方法解释
String url="https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+GlobalConstants.getInterfaceUrl("access_token"); try{
String rs=HttpUtils.sendPostBuffer(url, menujson.toJSONString());
System.out.println(rs);
}catch(Exception e){
System.out.println("请求错误!");
}
}
}
修改完成后,运行项目,调用我们的生成菜单方法:在浏览器中输入:http://zqfbk.iok.la/mychat/menue/。调用成功,后台会返回如下信息:

(二)测试
进入我们的公众号,点击测试,如下图,则配置成功:


接下来这里我们就简述如何在微信web开发中使用必要的方法!
在微信公众号提供的所有接口中我们可以按照接口实现的难易程度分成两个部分:
较易实现:基础接口、分享接口、设备信息接口、地理位置接口、界面操作接口、微信扫一扫接口;
较难实现:图像接口、音频接口、智能接口、微信小店接口、微信卡券接口、微信支付接口;(注:这里说较难是因为需要后端和本地文件配合接口)
在这里我们将讲述所有较易实现的接口的具体实现方法,在文在文章 https://www.cnblogs.com/gede/p/10949458.html中讲述过了如何配置和引入需要的js,通过这些配置之后我们就可以开始使用js的方法了!
①基础接口-判断当前浏览器是否支持某些js接口
/*
* 注意:
* 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
*/
wx.ready(function () {
//1. 判断当前版本是否支持指定 JS 接口,支持批量判断,只需要将需要判断的接口放入到jsApiList中即可
checkJsApifunction () {
wx.checkJsApi({
jsApiList: [
'getNetworkType',
'previewImage'
],
success: function (res) {
alert(JSON.stringify(res));
}
});
};
②分享接口,这里包含:分享给朋友、分享到朋友圈、分享到qq、分享到微博、分享到qq空间(但是这里要提醒要注意不要有诱导分享等违规行为,对于诱导分享行为将永久回收公众号接口权限
// 3 设备信息接口
// 3.1 获取当前网络状态
getNetworkTypefunction () {
wx.getNetworkType({
success: function (res) {
alert(res.networkType);
var networkType = res.networkType; // 返回网络类型2g,3g,4g,wifi
if(networkType=='3g'){
alert("您好,您的网络状态是3g网络,这里将播放视频文件会产生大流程!");
}
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
};
④地理位置接口,这里包含查看经纬度对应的地图位置和获取当前位置的经纬度,可用做地图位置展示的第一步!
// 4 地理位置接口
// 4.1 查看地理位置
openLocationfunction () {
wx.openLocation({
latitude: 23.099994,
longitude: 113.324520,
name: 'TIT 创意园',
address: '广州市海珠区新港中路 397 号',
scale: 14,
infoUrl: 'http://weixin.qq.com'
});
}; // 4.2 获取当前地理位置
getLocationfunction () {
wx.getLocation({
success: function (res) {
alert(JSON.stringify(res));
},
cancel: function (res) {
alert('用户拒绝授权获取地理位置');
}
});
};
⑤界面操作接口,这里说的界面操作其实就是在微信浏览器中操作和改名的那右上角的【三个点】,对这里隐藏的菜单进行操作和关闭微信浏览器!
// 5 界面操作接口
// 5.1 隐藏右上角菜单
hideOptionMenufunction () {
wx.hideOptionMenu();
}; // 5.2 显示右上角菜单
showOptionMenufunction () {
wx.showOptionMenu();
}; // 5.3 批量隐藏菜单项
hideMenuItemsfunction () {
wx.hideMenuItems({
menuList: [
'menuItem:readMode', // 阅读模式
'menuItem:share:timeline', // 分享到朋友圈
'menuItem:copyUrl' // 复制链接
],
success: function (res) {
alert('已隐藏“阅读模式”,“分享到朋友圈”,“复制链接”等按钮');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
}; // 5.4 批量显示菜单项
showMenuItemsfunction () {
wx.showMenuItems({
menuList: [
'menuItem:readMode', // 阅读模式
'menuItem:share:timeline', // 分享到朋友圈
'menuItem:copyUrl' // 复制链接
],
success: function (res) {
alert('已显示“阅读模式”,“分享到朋友圈”,“复制链接”等按钮');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
}; // 5.5 隐藏所有非基本菜单项
hideAllNonBaseMenuItemfunction () {
wx.hideAllNonBaseMenuItem({
success: function () {
alert('已隐藏所有非基本菜单项');
}
});
}; // 5.6 显示所有被隐藏的非基本菜单项
showAllNonBaseMenuItemfunction () {
wx.showAllNonBaseMenuItem({
success: function () {
alert('已显示所有非基本菜单项');
}
});
}; // 5.7 关闭当前窗口
closeWindowfunction () {
wx.closeWindow();
};
⑥微信扫一扫接口,这个接口可以在页面调用微信的扫一扫功能,其中参数needResult可以设置扫描之后的处理方式;
// 6 微信原生接口
wx.scanQRCode({
needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
}
});
那么到这里微信JS-SDK方法实现中的简答实现部分基本就讲述完成了!
最后我们写一个简单的页面,来调用不同的js。简单代码如下:
Java微信公众平台开发(十二)--微信JSSDK的使用的更多相关文章
- Java微信公众平台开发(十二)--微信用户信息的获取
转自:http://www.cuiyongzhi.com/post/56.html 前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信 ...
- Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息
转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...
- Java微信公众平台开发(十五)--微信JSSDK的使用
转自:http://www.cuiyongzhi.com/post/63.html 在前面的文章中有介绍到我们在微信web开发过程中常常用到的 [微信JSSDK中Config配置] ,但是我们在真正的 ...
- Java微信公众平台开发(十)--微信用户信息的获取
前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关 ...
- Java微信公众平台开发(一)--接入微信公众平台
转自:http://www.cuiyongzhi.com/post/38.html (一)接入流程解析 在我们的开发过程中无论如何最好的参考工具当然是我们的官方文档了:http://mp.weixin ...
- Java微信公众平台开发(十)--微信自定义菜单的创建实现
转自:http://www.cuiyongzhi.com/post/48.html 自定义菜单这个功能在我们普通的编辑模式下是可以直接在后台编辑的,但是一旦我们进入开发模式之后我们的自定义菜单就需要自 ...
- Java微信公众平台开发(十四)【番外篇】--微信web开发者工具使用
转自:http://www.cuiyongzhi.com/post/58.html 为帮助开发者更方便.更安全地开发和调试基于微信的网页,微信推出了 web 开发者工具.它是一个桌面应用,通过模拟微信 ...
- 微信公众平台开发(二)——access_token、日志
一.access_token 1)两种access_token,网页授权access_token和普通access_token 1.微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后, ...
- ASP.NET Web API实现微信公众平台开发(二)access_token与定时任务
承接上一篇,今天主要讲述如何实现定时获取微信access_token功能的实现. access_token 首先我们根据微信的开发指南,任何对微信的操作都要使用合法获取的access_token,微信 ...
随机推荐
- Thread,Service和AsyncTask
Thread,Service和AsyncTask这三种东西,似乎都是用来执行后台耗时操作的: 印象里Service是「超过5s的耗时操作就应该放进去」,但是Service实际上仍然是主线程,所以,在S ...
- css 跳转电脑分辨率
因为我们经常在项目中要适配各种屏幕,为了方便前端的开发和测试.我们可以直接把电脑的分辨率调整到需要适配的最小的分辨率,其实还有一种更直接粗暴的方法.直接按F12打开控制台,在收拉浏览器就能看到目前的分 ...
- configured to save RDB snapshots, but is currently not able to persist o...
Redis问题 MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on d ...
- vijos:P1155集合位置(次短路)
描述 每次有大的活动,大家都要在一起“聚一聚”,不管是去好乐迪,还是避风塘,或者汤姆熊,大家都要玩的痛快.还记得心语和花儿在跳舞机上的激情与释放,还记得草草的投篮技艺是如此的高超,还记得狗狗的枪法永远 ...
- Oracle创建表,并添加默认值和备注
create table testemp( id varchar2(50) default sys_guid(),deptno varchar2(20) ,--部门编码 ename varchar2( ...
- jQuery 防止相同的事件快速重复触发
重复触发就是防止用户重复点击提交数据了,我们一般都是点击之后没反应会再次点击了,这个不但要从用户体验上来做好,还在要js或php程序脚本上做好,让用户知道点击是己提交服务器正在处理,下面我就整理从脚本 ...
- JavaScript高级程序设计学习笔记第十四章--表单
1.在 HTML 中,表单是由<form>元素来表示的,而在 JavaScript 中,表单对应的则是 HTMLFormElement 类型. HTMLFormElement 继承了 HT ...
- 再学IHanlder 类----------------关于Asp.net与iis原理网上看博客收获写一个验证码用一般处理程序记的好长时间前就写过不过现在再看有点不一样的感觉
建一个web网站 新建一般处理程序直接贴代码: using System;using System.Collections.Generic;using System.Linq;using System ...
- POJ-3069
Saruman's Army Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10994 Accepted: 5555 D ...
- 21.运行Consent Page
服务端把这个地方修改为true,需要设置 运行测试.服务端和客户端都运行起来 我们使用的用户是在这里配置的 服务端修改ConsentController 再次运行,但是页面都是乱码 openId和pr ...