JSSDK用法

参照微信官方文档,调试成功之后总结如下:
步骤一:绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
备注:登录后可在“开发者中心”查看对应的接口权限。
步骤二:引入JS文件

在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js
备注:支持使用 AMD/CMD 标准模块加载方法加载
步骤三:写代码

//初始化定义(在页面js里面)
wx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: ‘‘, // 必填,公众号的唯一标识--->用户的微信公众号appid
    timestamp: ‘‘, // 必填,生成签名的时间戳--->系统自己生成的时间戳。
    nonceStr: ‘‘, // 必填,生成签名的随机串--->系统本地生成的UUID。
    signature: ‘‘,// 必填,签名,见附录1
    jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2--->一大串CC+CV
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

为了获取上述参数如下操作
获取参数流程==========================================================================

1:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=‘自己申请的公众号appid’&secret=’自己申请的公众号secret’
根据appid和secret返回的json格式数据
获取access_token;(涉及访问量,根据2小时限制需要缓存在本地 !)

2:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=‘上一步access_token’&type=jsapi
根据上一步返回的access_token
获取jsapi_ticket;(涉及访问量,根据2小时限制需要缓存在本地 !)

3: 获取nonce_str=UUID.randomUUID().toString();

获取timestamp=Long.toString(System.currentTimeMillis() / 1000);

获取url=request.getRequestURL();

获取signature

   string1=(jsapi_ticket+nonce_str+timestamp+url)//注意这里参数名必须全部小写,且必须有序-->MessageDigest类
            a)MessageDigest crypt = MessageDigest.getInstance("SHA-1");
            b)crypt.reset();
            c)crypt.update(string1.getBytes("UTF-8"));
            d)signature = byteToHex(crypt.digest());
  • 1
  • 2
  • 3
  • 4
  • 5

获取成功==================================================================================

跳转页面,传递到wx.config()中去。demo.jsp

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

//初始化定义
var sd=${result.timestamp};
  wx.config({
      debug: false ,
      appId: ‘${result.appId}‘,
      timestamp: ‘${timestamp}‘,
      nonceStr: ‘${appId}‘,
      signature: ‘${signature}‘,
      jsApiList: [
        ‘onMenuShareTimeline‘,
        ‘onMenuShareAppMessage‘,
        ‘onMenuShareQQ‘,
        ‘onMenuShareWeibo‘,
        ‘hideMenuItems‘,
        ‘showMenuItems‘,
        ‘hideOptionMenu‘,
        ‘showOptionMenu‘
      ]
  });

wx.ready(function () {

//地理位置
wx.getLocation({
    success: function (res) {
        var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
        var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
        var speed = res.speed; // 速度,以米/每秒计
        var accuracy = res.accuracy; // 位置精度
        alert("latitude : "+latitude+"--longitude : "+longitude+"--speed : "+speed+"--accuracy : "+accuracy);
    }
});

</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

应一哥们要求,我把我自己调试用的例子发出
=========例子===========

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%@taglib uri="/struts-tags" prefix="s"%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>syShaoyj1990</title>

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

var sd=${result.timestamp};
//初始化定义
wx.config({
    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: ‘${result.appId}‘, // 必填,公众号的唯一标识--->用户的微信公众号appid
    timestamp: sd, // 必填,生成签名的时间戳--->系统自己生成的时间戳。
    nonceStr: ‘${result.nonceStr}‘, // 必填,生成签名的随机串--->系统本地生成的UUID。
    signature: ‘${result.signature}‘,// 必填,签名,见附录1
    jsApiList: [‘onMenuShareTimeline‘,
                ‘onMenuShareAppMessage‘,
                ‘onMenuShareQQ‘,
                ‘onMenuShareWeibo‘,
                ‘startRecord‘,
               ‘stopRecord‘,
                ‘onVoiceRecordEnd‘,
                ‘playVoice‘,
                ‘pauseVoice‘,
                ‘stopVoice‘,
                ‘onVoicePlayEnd‘,
                ‘uploadVoice‘,
                ‘downloadVoice‘,
                ‘chooseImage‘,
                ‘previewImage‘,
                ‘uploadImage‘,
                ‘downloadImage‘,
                ‘translateVoice‘,
                ‘getNetworkType‘,
                ‘openLocation‘,
                ‘getLocation‘,
                ‘hideOptionMenu‘,
               ‘ showOptionMenu‘,
               ‘ hideMenuItems‘,
                ‘showMenuItems‘,
               ‘ hideAllNonBaseMenuItem‘,
               ‘ showAllNonBaseMenuItem‘,
              ‘  closeWindow‘,
              ‘  scanQRCode‘,
              ‘  chooseWXPay‘,
               ‘ openProductSpecificView‘,
               ‘ addCard‘,
               ‘ chooseCard‘,
                ‘openCard‘] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2--->一大串CC+CV
});

  wx.config({
      debug: false ,
      appId: ‘${result.appId}‘,
      timestamp: sd,
      nonceStr: ‘${result.nonceStr}‘,
      signature: ‘${result.signature}‘,
      jsApiList: [
        ‘onMenuShareTimeline‘,
        ‘onMenuShareAppMessage‘,
        ‘onMenuShareQQ‘,
        ‘onMenuShareWeibo‘,
        ‘hideMenuItems‘,
        ‘showMenuItems‘,
        ‘hideOptionMenu‘,
        ‘showOptionMenu‘
      ]
  });

</script>

<script>
wx.ready(function () {
//分享到qq
wx.onMenuShareQQ({
    title: ‘分享到qq‘, // 分享标题
    desc: ‘‘, // 分享描述
    link: ‘‘, // 分享链接
    imgUrl: ‘‘, // 分享图标
    success: function () {
       // 用户确认分享后执行的回调函数
    },
    cancel: function () {
       // 用户取消分享后执行的回调函数
    }
});

//地理位置
wx.getLocation({
    success: function (res) {
        var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
        var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
        var speed = res.speed; // 速度,以米/每秒计
        var accuracy = res.accuracy; // 位置精度
        alert("latitude : "+latitude+"--longitude : "+longitude+"--speed : "+speed+"--accuracy : "+accuracy);
    }
});

//分享到朋友圈
wx.onMenuShareTimeline({
title: ‘syj,分享到朋友圈测试!‘,
   link: ‘http://shaoyj1990.sinaapp.com‘,
   imgUrl: ‘http://image.baidu.com/detail/newindex?col=%E8%B5%84%E8%AE%AF&tag=%E5%A8%B1%E4%B9%90&pn=0&pid=5759608761913747677&aid=&user_id=10086&setid=-1&sort=0&newsPn=0&star=%E5%80%AA%E5%A6%AE&fr=&from=1‘,
   success: function (res) {
alert("ok");
 }
});

//分享给朋友
wx.onMenuShareAppMessage({
title: ‘syj,分享给朋友测试!‘,
   desc: ‘地球一小时,让地球母亲休息一小时!‘,
   link: ‘http://www.baidu.com‘,
   imgUrl: ‘http://www.baidu.com‘,
 success: function (res) {
 alert("ok");
 }
});

});

</script>
</head>
<body>
<button id="getLocation">click</button>
</body>
</html>
时间: 2024-10-11 11:24:35

JSSDK用法的相关文章

0517日重点:微信的jssdk用法

如上图,微信分享默认情况下: 1.微信中分享出去的链接,都是当前那个点击分享操作的页面链接. 2.微信分享链接中的文字,就是页面中的title. 3.微信分享链接中的图片,是页面中默认的第一个img.如果页面没有,就空着. 但是如果想分享出去的页面链接是指定的某页面,或者图片位置显示指定图片,或者中间描述部分不是连接是文字,如下图: 就得必须在项目里用上微信提供的js-sdk了. 参考文档:https://mp.weixin.qq.com/wiki 配置中的签名需要后台配合,生成动态签名才行.

用c#开发微信(10) JSSDK 基本用法 分享接口“发送到朋友”

微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包.通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 本文以介绍了分享接口里的"发送给朋友"事件的基本用法,其它的类推. JSSDK使用步骤 1:绑定域名 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安

用c#开发微信 (10) JS-SDK 基本用法- 分享接口&ldquo;发送到朋友&rdquo;

微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包.通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 本文以介绍了分享接口里的"发送给朋友"事件的基本用法,其它的类推. JSSDK使用步骤 1:绑定域名 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安

用c#开发微信 (10) JS-SDK 基本用法- 分享接口“发送到朋友”

微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包.通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 本文以介绍了分享接口里的“发送给朋友”事件的基本用法,其它的类推. JSSDK使用步骤 1:绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 备注:登录后可在“开发者中心”查看对应的接口权限

AppCan JSSDK模块扩展

1.      从源码开始: 我们先看源码的8188行到9525行: window.appcan && appcan.define('window',function($,exports,module){         var subscribeGlobslQueue = [];//订阅队列     var bounceCallQueue = [];//     var multiPopoverQueue = {};     var currentOS = '';     var key

微信jsSDK开发

(学习类)2015年最新微信公众平台开发 微信JSSDK开发分享功能 链接地址:http://blog.163.com/[email protected]/blog/static/11463788520151322125782/ 用c#开发微信(10) JSSDK 基本用法 分享接口"发送到朋友" 链接地址:http://www.it165.net/pro/html/201506/42675.html#

微信公众号开发--微信JS-SDK分享到朋友圈和分享给朋友

之前写过一篇使用微信JS-SDK来实现扫一扫功能的博客 微信公众号开发–微信JS-SDK扫一扫功能 在该博客里介绍了微信JS-SDK的基本用法,其中包括以下几个步骤 还详细介绍了通过config接口注入权限验证配置以及签名算法实现的Java版本 前两天在做微信分享的时候发现按照以前的思路每次都不能正确获取"分享到朋友圈"按钮点击状态及自定义分享内容接口,而是必须通过一个按钮先点击帮点事件,然后才能获取"分享到朋友圈"按钮点击状态及自定义分享内容接口. 回顾一下以前扫

js中获取时间new date()的用法

js中获取时间new date()的用法 获取时间:   var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getFullYear(); //获取完整的年份(4位,1970-????) 3 myDate.getMonth(); //获取当前月份(0-11,0代表1月) 4 myDate.getDate(); //获取当前日(1-31) 5 myDate.getDay();

20.5 Shell脚本中的逻辑判断;20.6 文件目录属性判断;20.7 if特殊用法;20.8 20.9 cace判断(上下)

扩展: select用法 http://www.apelearn.com/bbs/thread-7950-1-1.html 20.5 Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 1. 创建if1.sh测试脚本: [[email protected] ~]# vi if1.sh a=5,如果a大于3,满足这个条件,显示ok 添加内容: #!/bin/bash a=5 if [ $a -gt 3 ] then echo ok fi 2. 执行if1.sh脚本: [[e