如今的网站基本上都须要接入微信分享功能,那么这个过程是怎么实现的咩,前几天作了这个功能,一直没来得及整理下,javascript
今天大体把步骤写一写。html
微信的官网文档给出了很是清晰具体的步骤 http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.htmljava
(1)绑定域名web
先登陆微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。canvas
备注:登陆后能够在“开发者中心”查看对应的接口权限vim
(2)引入js文件,http://res.wx.qq.com/open/js/jweixin-1.0.0.jsapi
将js下载后拷贝到app/assets/javascripts文件夹。安全
而后好要在application.js.coffee里引入一下哦,就是添加这句话微信
#= require jweixin-1.0.0
(3)增长初始化文件 vim initializers/weixin.rbapp
vim config/initializers/weixin.rb
而后加入下面的初始化内容
$client ||= WeixinAuthorize::Client.new(CONFIG['weixin']['appid'], CONFIG['weixin']['secret_key'],"")
在config/config.yml里加入配置(这里的是须要从微信申请的)
weixin:
appid: wfasfasfasdfxxxx
secret_key: 4cf4dfasfsdfsadfasdf5dasda
(4)经过config接口注入权限验证配置
全部使用JS-SDK的页面必须先注入配置信息,不然将没法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,因此使用pushState来实现web app的页面会致使签名失败,此问题会在Android6.2中修复)
vim app/views/share/_weixin_config.html.slim
加入对应的代码
- data = $client.get_jssign_package(request.url) javascript: wx.config({ debug: false, // true是开启调试模式,调用的全部api的返回值会在客户端alert出来,若要查看传入的参数,能够在pc端打开,参数信息会经过log打出,仅在pc端时才会打印 appId: '#{data["appId"]}', // 必填,公众号的惟一标识 timestamp: '#{data["timestamp"]}', // 必填,生成签名的时间戳 nonceStr: '#{data["nonceStr"]}', // 必填,生成签名的随机串 signature: '#{data["signature"]}',// 必填,签名,见附录1 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 必填,须要使用的JS接口列表,全部JS接口列表见附录2 });
(5)app/views/layouts/application.html.slim页面添加按钮
.modal.fade id="shareModal" role="dialog" aria-labelledby="infoModalLabel" .modal-dialog role="document" .modal-content#share-web .modal-header button type="button" class="close" data-dismiss="modal" aria-label="Close" span aria-hidden="true" × .modal-title id="infoModalLabel" 微信扫一扫,分享给你的好友吧 .modal-body#share-qrcodeTable .modal-content#share-weixin .modal-body button type="button" class="close" data-dismiss="modal" aria-label="Close" span aria-hidden="true" × javascript: $(function() { $('[data-toggle="popover"]').popover(); }); jQuery('#share-qrcodeTable').qrcode({ render : "canvas", width : 260, height : 260, text : "http://aaa.com" }) var ua = window.navigator.userAgent.toLowerCase() if(ua.match(/MicroMessenger/i) == 'micromessenger'){ $('#share-web').addClass('hidden') }else{ $('#share-weixin').addClass('hidden') } $('#share').click(function(){ $('#shareModal').modal('show') })
(6)在对应的页面里增长配置,指定在转入朋友圈里连接显示的文字和图片
app/views/aaas/index.html.slim
javascript: // 首页的微信分享 wx.ready(function(){ wx.onMenuShareTimeline({ title: '来看看aaa!', link: window.location.href, imgUrl: '#{logo_url}' }); wx.onMenuShareAppMessage({ title: '这是标题', desc: '来看看aaa!', link: window.location.href, imgUrl: '#{logo_url}' }); });