文章出處
文章列表
之前寫過一篇使用微信JS-SDK來實現掃一掃功能的博客
在該博客里介紹了微信JS-SDK的基本用法,其中包括以下幾個步驟
還詳細介紹了通過config接口注入權限驗證配置以及簽名算法實現的Java版本
前兩天在做微信分享的時候發現按照以前的思路每次都不能正確獲取“分享到朋友圈”按鈕點擊狀態及自定義分享內容接口,而是必須通過一個按鈕先點擊幫點事件,然后才能獲取“分享到朋友圈”按鈕點擊狀態及自定義分享內容接口。
回顧一下以前掃一掃的js代碼
下面是wx.config的主代碼
<script type="text/javascript">
$(function() {
var timestamp = $("#timestamp").val();//時間戳
var nonceStr = $("#noncestr").val();//隨機串
var signature = $("#signature").val();//簽名
wx.config({
debug : true, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
appId : 'wx622ca8545e5c354b', // 必填,公眾號的唯一標識
timestamp : timestamp, // 必填,生成簽名的時間戳
nonceStr : nonceStr, // 必填,生成簽名的隨機串
signature : signature,// 必填,簽名,見附錄1
jsApiList : [ 'scanQRCode' ]
// 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
});
});
</script>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
下面是掃一掃的代碼
前提是有一個
<button id="scanQRCode">掃碼</button>
- 1
- 2
$("#scanQRCode").click(function() {
wx.scanQRCode({
needResult : 1,
desc : 'scanQRCode desc',
success : function(res) {
//掃碼后獲取結果參數:htpp://xxx.com/c/?6123,截取到url中的防偽碼后,賦值給Input
var url = res.resultStr;
/* var tempArray = url.split('?');
var tempNum = tempArray[1]; */
if(url.indexOf(",")>=0){
var tempArray = url.split(',');
var tempNum = tempArray[1];
$("#id_securityCode_input").val(tempNum);
}else{
$("#id_securityCode_input").val(url);
}
}
});
});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
以上代碼完全沒有問題,但是當我配置獲取“分享到朋友圈”按鈕點擊狀態及自定義分享內容接口的時候卻始終不能成功
解決方案
原來是wx.config執行需要時間,而我們把掃一掃放在外面完全沒影響。是因為,我們點擊掃碼的時候wx.config已經加載好了,而我之前的點擊一下再分享和掃碼是一個道理,為了不讓用戶點擊一下再分享需要將我上面講的微信JS-SDK使用步驟中的第四步用到
轉自 :
http://blog.csdn.net/frankcheng5143/article/details/51026996
文章列表
全站熱搜