微信強大的整合能力讓企業公衆號的開發迅速竄紅。尤爲是企業需要個性化定製的一些功能。公司在同一時候上線的app和觸屏版的應用中,微信分享天然是不可或缺的重要一環。ajax
縱觀現在大多數的微信公衆號。分享大都是彈出二維碼或者乾脆直接使用微信右上方的分享功能分享網頁連接,對於本身定義分享內容這個功能就顯得力不從心了,因此在公司偉大領袖的號召下。咱們要本身定義分享內容,分享標題。分享連接。好的。領導的精神已經公佈了,接下來該咱們發神經了。json
拿到微信jssdk開發文檔的那一刻我信心百倍的告訴本身。小意思。搞得定(我知道我又想多了)。是的,事情確實沒有那麼的順利。測試號的開發進行的坎坎坷坷一切都要歸功於開發文檔的英明指導,一開始是微信版本過低。接着是綁定安全域名,好easy到了js驗證的時候一直報「invalid signature」,細緻檢查下來原來是當前頁面的url必定是要動態獲取的。api
最終搞定了,簡單分享一下開發過程。瀏覽器
1.首先引入jweixin-1.0.0.js文件,這個文件是微信驗證簽名的運行文件。
2.到官網下載微信提供的簽名生成類,這個類需要稍加改造,獲得生成ticket的方法,同一時候要注意緩存jsapi_ticket和token。防止頻繁請求微信。緩存
3.經過js請求後臺獲得生成的時間戳,nonceStr和signature。
代碼例如如下:「(document).ready(function() {
var inviteLink = 「邀請連接」;(「#shareContent」).val(inviteLink);
$.ajax({
url: ‘<%=path %>/weixin/myshare.htm?url=’+pathURL,
type: ‘POST’,
dataType: ‘json’,
contentType:」application/json;charset=utf-8」,
data:{},
error: function(){alert(‘Error’);},
success: function(result){
wx.config({
debug: false, // 開啓調試模式,調用的所有api的返回值會在clientalert出來,若要查看傳入的參數,可以在pc端打開,參數信息會經過log打出。僅在pc端時纔會打印。
appId: result.appId, // 必填。公衆號的惟一標識
timestamp: result.timestamp, // 必填,生成簽名的時間戳
nonceStr: result.nonceStr, // 必填,生成簽名的隨機串
signature: result.signature,// 必填,簽名。見附錄1
jsApiList: [
‘checkJsApi’,
‘onMenuShareTimeline’,
‘onMenuShareAppMessage’,
‘onMenuShareQQ’,
‘onMenuShareWeibo’
]
});
wx.ready(function(){安全
}); wx.error(function(res){ // config信息驗證失敗會運行error函數 //alert(res); }); } });
});「微信
當中jsApiList中是微信提供的分享功能,各自是分享到朋友圈,發送給微信好友,分享到微博和分享到QQ,開發前期可以使用checkJsApi檢查公衆號是否獲取了這些權限。假設沒有勿必先獲取權限。不然沒法正常使用。另一個需要注意的問題就是在微信內置瀏覽器的緩存問題。經常困擾驗證結果的就是緩存。因此每當進行一次測試以前最好先關閉微信。因緩存形成的麻煩太讓人痛苦了。markdown