使用微信JS-SDK 实现 自定义 分享 功能

微信PC端点击页面,转发给朋友。

开发前 ,分享之后 ,链接 样式如下:

格式化之后,样式如下:

页面代码:

<!DOCTYPE html>
<vt:function var="source" method="GetBySingle" args="$Company" type="Business.BLL.Sys.CompanyService" />
<html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px">
<head>
    <title>联系我们</title>
<meta charset="utf-8">
<meta name="format-detection" content="telephone=no" /><!--关闭自动识别号码-->
<meta name="viewport" content="target-densitydpi=get-target-densitydpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<meta name="renderer" content="webkit">
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="stylesheet" href="{$:WebRoot}Resource/wzsWeb/css/index.css">
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js" type="text/javascript"></script>
<script src="{$:WebRoot}Resource/wzsWeb/js/jquery-1.9.1.min.js"></script>

<script>

    var title = ‘联系我们‘;
    // 分享图标
    var imgUrl = window.location.protocol + "//" + window.location.hostname+‘/Images/zj.jpg‘;
    // 分享描述
    var desc = ‘地址:{$:source.Address}   电话:{$:source.LinkPhone}‘;

    // 分享链接
    var link = window.location.href;
    //初始化JSSDK
    function initJSSDK(appId, timestamp, nonceStr, signature, debug) {
        //所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用)。A组  B组
        wx.config({
            debug: debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
            appId: appId,// 必填,公众号的唯一标识
            timestamp: timestamp, // 必填,生成签名的时间戳
            nonceStr: nonceStr,  // 必填,生成签名的随机串  nonceStr
            signature: signature, // 必填,签名,见附录1
            jsApiList: [‘onMenuShareTimeline‘, ‘onMenuShareAppMessage‘, ‘onMenuShareQQ‘, ‘onMenuShareWeibo‘] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
        });
    } 

     //config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要 放在ready函数中。
    wx.ready(function () {
        //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
        wx.onMenuShareTimeline({
            title: title,   // 分享标题
            link: link,     // 分享链接
            imgUrl: imgUrl, // 分享图标
            success: function () {
                // 用户确认分享后执行的回调函数
                assist("transmit");
            }
        });

        //获取“分享给朋友”按钮点击状态及自定义分享内容接口
        wx.onMenuShareAppMessage({
            title: title,   // 分享标题
            desc: desc,     // 分享描述
            link: link,     // 分享链接
            imgUrl: imgUrl, // 分享图标
            type: ‘‘,       // 分享类型,music、video或link,不填默认为link
            dataUrl: ‘‘,    // 如果type是music或video,则要提供数据链接,默认为空
            success: function () {
                // 用户确认分享后执行的回调函数
                assist("transmit");
            },
            cancel: function () {
                // 用户取消分享后执行的回调函数
            }
        });

        //获取“分享到QQ”按钮点击状态及自定义分享内容接口
        wx.onMenuShareQQ({
            title: title, // 分享标题
            desc: desc, // 分享描述
            link: link, // 分享链接
            imgUrl: imgUrl, // 分享图标
            success: function () {
                // 用户确认分享后执行的回调函数
                assist("transmit");
            },
            cancel: function () {
                // 用户取消分享后执行的回调函数
            }
        });

        //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口
        wx.onMenuShareWeibo({
            title: title, // 分享标题
            desc: desc, // 分享描述
            link: link, // 分享链接
            imgUrl: imgUrl, // 分享图标
            success: function () {
                // 用户确认分享后执行的回调函数
                assist("transmit");
            },
            cancel: function () {
                // 用户取消分享后执行的回调函数
            }
        });
    });                

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

    $(function(){
          $.ajax({
              type: ‘POST‘,
              data: {companyId:"{$:Company}",url:link},
              url: "{$:WebRoot}/Service/ContactUs/GetJssdk",
              success: function (data) {

                  //初始化JSSDK
                  initJSSDK(data.appId, data.timestamp, data.nonceStr, data.signature, false);
              },
              error: function () {
                  //alert("非常抱歉,加入购物车失败!")
              }
          });
    });

    function toProduct(productid) {
        window.location.href = "{$:WebRoot}PlugIn/Template/Template?id=130819174575087458&bizid=" + productid;
    }

    function gourl(url) {
        window.location.href = "{$:WebRoot}/PlugIn/Template/Template?id=" + url;
    }

</script>

</head>
<body style="background:-webkit-gradient(linear, 0% 0%, 0% 100%,from(#DDD), to(#DDD));">
<div class="top-but">
    <ul>
        <li>
            <a href="tel:{$:source.LinkPhone}">拨号</a>
        </li>
        <li>
            <a href="http://map.qq.com/m/place/info/pointx={$:source.X}&pointy={$:source.Y}&level=18&word={$:source.Name}&addr={$:source.Address}?from=wap-map1.0&referer=weixinmp_profile">导航</a>
        </li>
        <li>
            <a href="http://weixin.5iyaya.com/PlugIn/Template/Template?id=130888591685512339">客服</a>
        </li>
    </ul>
</div>
<div class="map-img" style="position: fixed; bottom:40px;">
    <p>
        诊所地址:{$:source.Address}<br>
       &nbsp; &nbsp;&nbsp;电话:<a href="tel:{$:source.LinkPhone}">{$:source.LinkPhone}</a>&nbsp;&nbsp;&nbsp;<a href="tel:{$:source.Phone}">{$:source.Phone}</a><br>
        &nbsp;&nbsp;&nbsp;&nbsp;电子邮箱:82094995@qq.com<br>
       <!-- 公司网页:<a href="http://www.baidu.com">www.baidu.com</a>-->
    </p>
</div>
<iframe src="http://map.qq.com/m/place/info/pointx={$:source.X}&pointy={$:source.Y}&level=18&word={$:source.Name}&addr={$:source.Address}?from=wap-map1.0&referer=weixinmp_profile" frameborder="0" style="width:100%;height:350px;"/>

</body>
</html>

帮助文档: http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

时间: 2024-08-24 16:50:49

使用微信JS-SDK 实现 自定义 分享 功能的相关文章

c#微信开发,使用JS-SDK自定义分享功能,分享朋友圈,分享给朋友等

如果一个后端开发掌握了微信开发,甚至有微信开发上线项目,这在换工作的时候 还是有竞争力的. 微信开发的资料很多,但是用asp.net c#进行微信开发好像比较少,或者资料不够完整. 使用JS-SDK自定义分享功能,分享朋友圈,分享给朋友,这里基本上不涉及后端语言. 1.首先要绑定域名,当然域名得备案. 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 说明:设置此安全域名目的是为了当发现此公众平台发现诱导分享行为时,可以根据此域名追溯到所有分享出去的链接,以及通过这

微信js sdk上传多张图片

微信js sdk上传多张图片,微信上传多张图片 该案例已tp3.2商城为例 直接上代码: php代码: public function ind(){ $appid="11111111111111111111"; $secret="11111111111111111111"; $token = S('access_token'); if (!$token) { $res = file_get_contents("https://api.weixin.qq.c

实战微信JS SDK开发:贺卡制作与播放(1)

前段时间忙于CanTK 2.0的开发,所以博客一直没有更新.CanTK 2.0主要增强了游戏和富媒体的开发,现在编码和测试基本完成了,等文档完成了再正式发布,里面有不少激动人心的功能,等发布时再一一细说吧. 最近同事用CanTK开发了一个基于微信的贺卡制作APP,我虽然没有参与开发,但是提供CanTK和GameBuilder的技术支持,觉得有些东西比较有意思,写几篇博客和大家分享吧.这个贺卡APP完全开源,有需要的朋友可以随意修改和发布. CanTK(Canvas ToolKit)是一个开源的游

微信JS SDK配置授权,实现分享接口

微信开放的JS-SDK面向网页开发者提供了基于微信内的网页开发工具包,最直接的好处就是我们可以使用微信分享.扫一扫.卡券.支付等微信特有的能力.7月份的时候,因为这个分享的证书获取问题深深的栽了一坑,后面看到"config:ok"的时候真的算是石头落地,瞬间感觉世界很美好.. 这篇文章是微信开发的很多前置条件,包括了服务端基于JAVA的获取和缓存全局的access_token,获取和缓存全局的jsapi_ticket,以及前端配置授权组件封装,调用分享组件封装. 配置授权思路:首先根据

微信js sdk分享开发摘记java版

绑定域名和引入js的就不说了 废话不说直接上代码 1 public void share(HttpServletRequest request) throws Exception { 2 3 StringBuffer homeUrl = request.getRequestURL(); 4 String queryString =request.getQueryString(); 5 if(StringUtils.isNotBlank(queryString)){ 6 homeUrl.appen

微信JS SDK Demo

微信JS-SDK 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置原文:http://www.cnblogs.com/txw1958/p/weixin-js-sdk-demo.html 一.JS部分 wx.ready(function () { // 1 判断当前版本是否支持指定 JS 接口,支持批量判断 document.querySelector('#checkJsApi').onclick = function () { wx.

微信JS SDK PHP Demo

一.JSSDK类定义 <?php class JSSDK { private $appId; private $appSecret; public function __construct($appId, $appSecret) { $this->appId = $appId; $this->appSecret = $appSecret; } public function getSignPackage() { $jsapiTicket = $this->getJsApiTicke

微信JS SDK Demo 官方案例

转自:http://my.oschina.net/superkangning/blog/367484 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 此文档面向网页开发者介绍微信JS-SDK如何使用及相关注意事项. 一:html代码部分 ? 1 2 3 4 5 6 7 8 9

微信JS SDK Demo 官方案例[转]

摘要: 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 此文档面向网页开发者介绍微信JS-SDK如何使用及相关注意事项. 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.