微信公众平台网页开发实战--1.微信分享一个网页到朋友圈

对微信的JSSDK进行封装一下,创建一份类似的文件结构,增加index.html与shareApi.js文件,结构如图3.3所示。

图3.3  3.2节文件结构

另外,提醒读者一下,wxJSSDK.js文件的JSSDK环境配置中,需要更改一下配置参数,代码如下:

01	        jsApiList: [ // 其他代码略
02	            "onMenuShareTimeline",
03	            "onMenuShareAppMessage",
04	            "onMenuShareQQ",
05	            "onMenuShareWeibo"
06	        ] 		// 必填,需要使用的JS接口列表,所有JS接口列表见附录B

index.html文件增加如下代码(HTML5网页):

01	<!DOCTYPE html>
02	<html lang="en">
03	<head>
04		<meta charset="UTF-8">
05		<title>第3章 3.2节 分享接口的作用</title>
06	    <!--依赖文件:jQuery-->
07	    <script src="./js/jquery-1.11.2.min.js"></script>
08	    <!--依赖文件:微信的JSSDK源文件-->
09	    <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
10	    <!--依赖文件:coolie-->
11	    <script src="./js/cookie.js"></script>
12	    <!--JSSDK的环境-->
13	    <script src="./js/wxJSSDK.js"></script>
14	    <!--引入检测API的分享接口-->
15	    <script src="./shareApi.js"></script>
16	</head>
17	<body>
18	    <h1 style="font-size: 40px">:)</h1>
19	    <b style="font-size: 20px">分享接口的作用!</b>
20	</body>
21	</html>

shareApi.js增加分享API的测试封装方案代码:
01	/*声明:
02	        为了方便读者朋友,这里省略配置环境,直接写检测代码。
03	 */
04
05	/*
06	 函数名称:wxJSSDK.shareApi
07	 函数功能:为wxJSSDK增加分享模块
08	 参数:
09	    shareList(Array) 必选项,待分享的API配置表
10	 */
11	wxJSSDK.shareApi = function(shareList){
12	    if(wxJSSDK.isReady){//wxJSSDK.isReady 查看微信JSSDK是否初始化完毕
13
14	        // 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
15	        if(shareList.onMenuShareTimeline){
16	            var ParametersTimeline = shareList.onMenuShareTimeline;
17	            wx.onMenuShareTimeline({
18	                title: ParametersTimeline.title, 		// 分享标题
19	                link: ParametersTimeline.link, 		// 分享链接
20	                imgUrl: ParametersTimeline.imgUrl, 	// 分享图标
21	                success: function () {
22	                    // 用户确认分享后执行的回调函数
23	                    ParametersTimeline.success && ParametersTimeline.success();
24	                },
25	                cancel: function () {
26	                    // 用户取消分享后执行的回调函数
27	                    ParametersTimeline.cancel && ParametersTimeline.cancel();
28	                }
29	            });
30	        }
31
32	        // 获取“分享给朋友”按钮点击状态及自定义分享内容接口
33	        if(shareList.onMenuShareAppMessage){
34	            var ParametersAppMessage = shareList.onMenuShareAppMessage;
35	            wx.onMenuShareAppMessage({
36	                title: ParametersAppMessage.title, 	// 分享标题
37	                desc: ParametersAppMessage.desc, 	// 分享描述
38	                link: ParametersAppMessage.link, 	// 分享链接
39	                imgUrl: ParametersAppMessage.imgUrl, // 分享图标
40	                type: ParametersAppMessage.type, 	// 分享类型,music、video或link,
41	不填默认为link
42	                dataUrl:  ParametersAppMessage.dataUrl, // 如果type是music或video,
43	则要提供数据链接,默认为空
44	                success: function () {
45	                    // 用户确认分享后执行的回调函数
46	                    ParametersAppMessage.success &&
47	ParametersAppMessage.success();
48	                },
49	                cancel: function () {
50	                    // 用户取消分享后执行的回调函数
51	                    ParametersAppMessage.cancel && ParametersAppMessage.cancel();
52	                }
53	            });
54	        }
55
56	        // 获取“分享到QQ”按钮点击状态及自定义分享内容接口
57	        if(shareList.onMenuShareQQ){
58	            var ParametersQQ = shareList.onMenuShareQQ;
59	            wx.onMenuShareQQ({
60	                title: ParametersQQ.title, 			// 分享标题
61	                desc: ParametersQQ.desc, 			// 分享描述
62	                link: ParametersQQ.link, 			// 分享链接
63	                imgUrl: ParametersQQ.imgUrl, 		// 分享图标
64	                success: function () {
65	                    // 用户确认分享后执行的回调函数
66	                    ParametersQQ.success && ParametersQQ.success();
67	                },
68	                cancel: function () {
69	                    // 用户取消分享后执行的回调函数
70	                    ParametersQQ.cancel && ParametersQQ.cancel();
71	                }
72	            });
73	        }
74
75	        // 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口
76	        if(shareList.onMenuShareWeibo){
77	            var ParametersWeibo = shareList.onMenuShareWeibo;
78	            wx.onMenuShareWeibo({
79	                title: ParametersWeibo.title, 			// 分享标题
80	                desc: ParametersWeibo.desc, 		// 分享描述
81	                link: ParametersWeibo.link,			// 分享链接
82	                imgUrl: ParametersWeibo.imgUrl, 	// 分享图标
83	                success: function () {
84	                    // 用户确认分享后执行的回调函数
85	                    ParametersWeibo.success && ParametersWeibo.success();
86	                },
87	                cancel: function () {
88	                    // 用户取消分享后执行的回调函数
89	                    ParametersWeibo.cancel && ParametersWeibo.cancel();
90	                }
91	            });
92	        }
93
94	    }else{
95	        console.log("抱歉,wx没有初始化完毕,请等待wx初始化完毕,再调用检测API服
96	务。");
97	    }
98
99	}
100
101	// 成功初始化后执行API分享事务
102	wxJSSDK.readySuccessCall.push(function(){
103	    var title = "HTML5外包,HTML5外包,HTML5是我们的生活,值得信赖的HTML5解决
104	方案提供商!",
105	        link = "http://www.html5waibao.com",
106	        imgUrl = "http://www.html5waibao.com/images/logo_35.png",
107	        desc = "html5外包,HTML5外包,html5外宝,html5活,html5手机网站",
108	        success = function(){
109	            alert("分享成功回调");
110	        },
111	        cancel = function(){
112	            alert("分享失败回调");
113	        };
114	    wxJSSDK.shareApi({
115	        onMenuShareTimeline : {		// 分享到朋友圈
116	            title: title, 				// 分享标题
117	            link: link, 				// 分享链接
118	            imgUrl: imgUrl, 			// 分享图标
119	            success: function () {
120	                success();
121
122	            },
123	            cancel: function () {
124	                cancel();
125
126	            }
127	        },
128	        onMenuShareAppMessage:{
129	            title: title, 				// 分享标题
130	            desc: desc,				// 分享描述
131	            link: link, 				// 分享链接
132	            imgUrl: imgUrl, 			// 分享图标
133	            type: "link", // 分享类型,music、video或link,不填默认为link
134	            dataUrl:  "", // 如果type是music或video,则要提供数据链接,默认为空
135	            success: function () {
136	                success();
137	            },
138	            cancel: function () {
139	                cancel();
140	            }
141	        },
142	        onMenuShareQQ:{
143	            title: title, 			// 分享标题
144	            desc: desc,			// 分享描述
145	            link: link, 			// 分享链接
146	            imgUrl: imgUrl, 		// 分享图标
147	            success: function () {
148	                success();
149	            },
150	            cancel: function () {
151	                cancel();
152	            }
153	        },
154	        onMenuShareWeibo:{
155	            title: title, 			// 分享标题
156	            desc: desc, 			// 分享描述
157	            link: link, 			// 分享链接
158	            imgUrl: imgUrl, 		// 分享图标
159	            success: function () {
160	                success();
161	            },
162	          cancel: function () {
163	                cancel();
164	            }
165	        }
166	    });
167	});

【代码解释】

  • 为“wxJSSDK”增加“shareApi”方法。
  • 以对象的参数形式,为调用“shareApi”方法的使用者配置具体的JSSDK的API。
  • 分别进行配置填充。
  • 用“wxJSSDK.readySuccessCall.push”增加JSSDK分享API的测试用例。

  打开手机会看到如图3.4所示的UI。点击右上角的分享到朋友圈按钮,会看到如图3.5所示的UI。如果分享成功会弹出对应的提示,如图3.6所示。

图3.4  测试用例分享界面

图3.5  分享到朋友圈UI

图3.6  分享到朋友圈成功提示

《微信公众平台网页开发实战——HTML5+JSSDK混合开发解密》

欢迎一起交流本书

时间: 2024-12-24 19:38:58

微信公众平台网页开发实战--1.微信分享一个网页到朋友圈的相关文章

ASP.NET MVC5微信公众平台整合开发实战教程

<ASP.NET MVC5&微信公众平台整合开发实战(响应式布局.JQuery Mobile,Windows Azure.微信核心开发)> 课程讲师:57Code 课程分类:ASP.NET MVC 适合人群:中级 课时数量:29课时 用到技术:深入MVC开发模式.C#核心语言特性.C#核心语言特性(二).视图引擎Razor 涉及项目:体育商店.微信公众平台开发 咨询QQ:1337192913(小公子) 1.1.1.背景分析 庞大的微信用户数是微信公众平台重要性的根本 微信用户的真实性使

ASP.NET MVC5微信公众平台整合开发实战视频教程

主要讲解微信公众平台整合开发实战,深入MVC开发模式视频引擎Razor的基础上开发微信公众平台,了解最前言的技术. 下载地址:百度网盘下载 原文地址:https://www.cnblogs.com/raineliflor/p/10398308.html

【课程分享】ASP.NET MVC5&amp;amp;微信公众平台整合开发实战(响应式布局、JQuery Mobile,Windows Azure、微信核心开发)

对这个课程有兴趣的,能够联系我QQ2748165793 基础知识储备 ASP.NET MVC 5基础(6讲) 第一讲-初识ASP.NET MVC并搭建整合开发环境 第二讲-深入MVC开发模式 第三讲-C#核心语言特性 第四讲-C#核心语言特性(二) 第五讲-视图引擎Razor 第六讲-MVC核心工具 实战演练(11讲) 第七讲-体育商店(一):项目架构 第八讲-体育商店(二):数据库创建和訪问 第九讲-体育商店(三):分页和样式 第十讲-体育商店(四):布局和导航 第十一讲-体育商店(五):购物

【课程分享】ASP.NET MVC5&amp;微信公众平台整合开发实战(响应式布局、JQuery Mobile,Windows Azure、微信核心开发)

对这个课程有兴趣的,可以联系我QQ2748165793 基础知识储备 ASP.NET MVC 5基础(6讲) 第一讲-初识ASP.NET MVC并搭建整合开发环境 第二讲-深入MVC开发模式 第三讲-C#核心语言特性 第四讲-C#核心语言特性(二) 第五讲-视图引擎Razor 第六讲-MVC核心工具 实战演练(11讲) 第七讲-体育商店(一):项目架构 第八讲-体育商店(二):数据库创建和访问 第九讲-体育商店(三):分页和样式 第十讲-体育商店(四):布局和导航 第十一讲-体育商店(五):购物

微信公众平台功能开发(生成带参数的二维码)

为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口.使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送. 目前有2种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1--100000).两种二维码分别适用于帐号绑定.用户来源统计等场景. 用户扫描带场景值二维码时,可能推送以下两种事件: 如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事

微名汇-微信公众平台功能开发(微信聊天机器人)

因为现在小黄鸡智能聊天机器人接口能免费试用7天,7天之后会收费这对于很多用户来说感觉不划算.所以我找了另一个接口:小i机器人,并且完全免费.本文介绍如何在微信公众平台中使用小i智能聊天api接口开发智能聊天机器人. 小i机器人是全球用户量最大的中文聊天机器人,最早在MSN上出现,后拓展到QQ.短信.网页等交互平台上,拥有超过1亿的用户.2012年2月,小i机器人整合了自然语音识别功能,并陆续发布了智能手机.智能电视以及电话上的语音交互版本. 小i机器人申请地址为http://cloud.xiao

微信公众平台应用开发:方法、技巧与案例--柳峰,Java语言版本

他本人的博客:http://blog.csdn.net/lyq8479 作者简介: 刘运强,网名“柳峰”,资深微信公众平台应用开发工程师,国内微信公众平台应用开发的先驱之一,项目经验丰富.他还是一位资深的Java软件开发工程师和 Android/iOS移动应用开发工程师,活跃于CocoaChina.OSChina.CSDN等社区,并在CSDN博客撰写了系列微信公众平台二次 开发的教程,深受欢迎并被广泛传播,也因此获得CSDN博客移动开发版块的“博客冠军”. 本教程是采用java语言开发. 微信公

微名汇-微信公众平台功能开发(天气查询)

在这篇教程中,我们将介绍如何在微信公众平台上开发天气预报功能.我们将使用中国天气网的气象数据接口来获取天气信息 这篇教程将介绍以下内容: 获取中国天气网的气象数据 在微信公众平台中回复天气 微名汇:http://weixin.zgtuango.com 联系QQ:44653139 一.中国天气网 中国天气网提供了丰富的气象数据接口.下面我们介绍主要的几个: 国家根节点接口: http://flash.weather.com.cn/wmaps/xml/china.xml 该接口以XML格式列出所有的

小梅科普:微信公众平台深度开发JAVA版(第一季)

微信作为当前流行的通信社交软件有了上亿的用户量,几乎每一个只能手机都要安装微信.但是,市场上对于JAVA开发微信公众平台的资料却少之又少,多数的资料一般是其他语言的.因此,主讲老师经过潜心研究.认真准备,录制了这套针对JAVA开发语言的微信公众平台开发教程. 1.课程研发环境 开发语言:JAVA WEBServer:TOMAT DATABASE:MySQL 开发工具:myeclipse.MySQL-Front等 其他:在手机应用中的CSS3+div布局.DWR.mybatis.gson.quar

微信公众平台深度开发JAVA版第二季视频教程

微信公众平台深度开发JAVA版第二季(九宝饭店微信点餐系统)视频教程下载密码:qa4a     联系QQ:1026270010 微信作为当前流行的通信社交软件有了上亿的用户量,几乎每一个只能手机都要安装微信.但是,市场上对于JAVA开发微信公众平台的资料却少之又少,多数的资料一般是其他语言的.因此,主讲老师经过潜心研究.认真准备,录制了这套针对JAVA开发语言的微信公众平台开发教程. 1.课程研发环境 开发语言:JAVA WEBServer:TOMAT DATABASE:MySQL 开发工具:m