最近做了一個手機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
