最近做了一個手機H5在微信和QQ里分享的問題,現在總結一下碰到的坑。。。。
1.第一個問題:config invalid signature
解決方法(1) 先看看生成的簽名對不對,網上有生成工具
(2)你的域名對不對,如果url有端口號,域名必須有端口號
(3)生成URL時,如果URL后面#后有沒有東西,有要去掉
(4)如果當前URL和生成的URL一模一樣,還是不行,在請求URL外加上encodeURI()就好了
2第二個問題:config invalid url domain
這個問題絕對是域名不對。。。。。
廢話不多說,直接上H5頁面的引用代碼,生成簽名的JAVA代碼網上很多,我就不寫了
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script language="javascript" type="text/javascript"> wx.config({ debug : false,//這里是開啟測試,如果設置為true,則打開每個步驟,都會有提示,是否成功或者失敗 appId : '${appid}', timestamp : '${timestamp}', nonceStr : '${nonceStr}', signature : '${signature}', jsApiList : [ // 所有要調用的 API 都要加到這個列表中 'onMenuShareTimeline',"onMenuShareAppMessage","onMenuShareQQ","onMenuShareQZone","hideMenuItems"] }); wx.ready(function() { // 1 判斷當前版本是否支持指定 JS 接口,支持批量判斷 wx.checkJsApi({ jsApiList : ['onMenuShareTimeline','onMenuShareAppMessage',"onMenuShareQQ","onMenuShareQZone","hideMenuItems"], }); //隱藏QQ空間分享,QQ瀏覽器,safari wx.hideMenuItems({ menuList: ["menuItem:share:QZone","menuItem:openWithSafari","menuItem:openWithQQBrowser"] }); var strTiele="標題"; var strDesc="描述"; var strLink="URL"; var strImgUrl="小圖片地址"; //分享朋友圈 wx.onMenuShareTimeline({ title : strTiele, // 分享標題 desc : strDesc,//分享描述 link : strLink, // 分享鏈接 imgUrl: strImgUrl,// 分享圖標 }); //分享給微信好友 wx.onMenuShareAppMessage({ title : strTiele, // 分享標題 desc : strDesc,//分享描述 link : strLink, // 分享鏈接 imgUrl: strImgUrl,// 分享圖標 }); //分享到QQ wx.onMenuShareQQ({ title : strTiele, // 分享標題 desc : strDesc,//分享描述 link : strLink, // 分享鏈接 imgUrl: strImgUrl,// 分享圖標 }); //分享到QQ空間 wx.onMenuShareQZone({ title : strTiele, // 分享標題 desc : strDesc,//分享描述 link : strLink, // 分享鏈接 imgUrl: strImgUrl,// 分享圖標 }); }); </script>
為了測試隱藏空間,我把QQ瀏覽器和QQ空間禁掉了,如果打開頁面點分享會出現,是因為Android手機會出現2秒的延遲,正常。
以上就是微信的分享,在QQ里二次分享會亂的,大家放心,有更好的解決辦法,QQ開放平台有自定義的js sdk
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/qzact/common/share/share.js"></script> <script language="javascript" type="text/javascript"> var strTiele="標題"; var strDesc="描述"; var strLink="跳轉地址"; var strImgUrl="小圖標地址"; //分享 setShareInfo({ title: strTiele, summary: strDesc, pic: strImgUrl, url: strLink, WXconfig: {//如果想微信里分享必選加,否之可去掉 swapTitleInWX: true, appId : '${appid}', timestamp : '${timestamp}', nonceStr : '${nonceStr}', signature : '${signature}' } }); </script>
看吧,代碼比微信分享的sdk簡單多了,而且支持微信和QQ之間互相來回分享,沒有問題
詳細可參考:http://open.mobile.qq.com/api/component/share