zoukankan      html  css  js  c++  java
  • 微信分享接口的调用

    微信分享包含两种,一是分享到朋友圈,另一种是分享给朋友。现在我详细介绍一下调用的流程:

    1.查看微信公众平台开发者文档

    http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

    2.JS文件的引入

    <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
    

      

    3.通过config接口注入权限验证配置

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

    注意:在调用分享接口前一定确保config的配置成功,可以通过debug:true返回的信息来查看appId,timestamp,nonceStr,signature是否获取成功。一般调用接口的地方都会通过拦截器来获取appId,timestamp,nonceStr,signature。

    4.通过ready接口处理成功验证

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

    5.分享接口的调用

    $(function() {
    		function submitShare(){
    			openLoadLayer();
    			var postData = getInitPageParams();
    			postData.qaId='${keyId}';
    			postData.openId='${openId}';
    			postData.share=1;
    			$.post(
    				BOM.rootURL + "wxactivityjson/saveUserinfo.action",postData,function(data) {
    				  closeAllLayer();
    				   if(data.actionErrors&&data.actionErrors.length>0){
    					alert(data.actionErrors[0]);
    				  }else{
    					alert('分享成功');
    					}
    			        }, 'json');
    		}
    		var wxTitle = "快来猜一猜";
    		var wxDesc = "碰一下运气,猜对了,大奖就是你的了!";
    		var linkurl = "http://wx2.jerehsoft.com/xiaov/wxactivity/appid_"+'${appId}'+"/qanda.action?keyId="+'${keyId}';
    		var imgUrl = "http://wx2.jerehsoft.com/xiaov/activity/answer/img/share.jpg";
    		wx.ready(function(){
    			//alert(111);
    			wx.onMenuShareAppMessage({
    			title : wxTitle, // 分享标题
    			desc : wxDesc, // 分享描述
    			link : linkurl, // 分享链接
    			imgUrl : imgUrl, // 分享图标
    			trigger: function (res) {
    				// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
    			},
    			success: function (res) {
    			  submitShare();
    			},
    			cancel: function (res) {
    			  alert('已取消分享');
    			},
    			fail: function (res) {
    				//alert(JSON.stringify(res));
    				alert('分享失败');
    			}
    		});
    		wx.onMenuShareTimeline({
    			title : wxTitle, // 分享标题
    			link : linkurl, // 分享链接
    			imgUrl : imgUrl, // 分享图标
    			trigger: function (res) {
    				// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
    		     },
    			success: function (res) {
    				submitShare();
    			},
    			cancel: function (res) {
    			  alert('已取消分享');
    			},
    			fail: function (res) {
    				alert('分享失败');
    			}
    		});
    		wx.hideOptionMenu();
    	});
    
    	wx.error(function(res){
    		alert(JSON.stringify(res));
    		// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,
                也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 }); $('.share-btn').click(function () { wx.ready(function() {   wx.showOptionMenu();   //alert('点击右上角菜单按钮分享给朋友');   showShare(); }); }); });

      

  • 相关阅读:
    [转载]PostgreSQL 的昨天、今天和明天 Joe
    [转载]ArcObjects使用小记~Singleton objects Joe
    [小记]postgresql的系统表 Joe
    ~PostgreSQL About~ Joe
    [转]Three things you should never put in your database Joe
    经典问题之汉诺塔
    经典问题之费式级数
    ExtJs 表单和表格之间进行数据交互
    commonfileupload 上传单个或者多个文件 示例
    软件工程中10个重要思想
  • 原文地址:https://www.cnblogs.com/langdon/p/5268662.html
Copyright © 2011-2022 走看看