share.js安卓分享朋友圈看不到图片

JavaScript09

share.js安卓分享朋友圈看不到图片,第1张

有可能是没有缓存jsapi_ticket导致的,微信这边做了限制,必须缓存jsapi_ticket和access_token。

share.js安卓分享朋友圈看不到图片解决方案:

一、检查。

1.测试页面的【标题】和【内容】不能有敏感词,否则不显示图片;如:红包,分享等;

2.测试页面的内容不丰富,测试发现,内容短也会引起不显示图片;

3.缩略图过小,这个没有测试过,不过建议最好像素大于100*100;

4.页面还没有完全加载好,点击了分享,也是不会显示缩略图的;

5.图片一定要在页面里加载下。

二、程序代码检查。

1.签名。

2.公众号是否设置了--IP白名单。

3.域名是否加入了公众号的--JS接口安全域名。

4.页面里微信的JS-SDK---wx.config配置参数大小写是否和官方提供的一致。

5.你用到的功能是否在wx.config的“jsApiList”参数里。

6.一定要确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。

我在本站使用百度分享的时候也遇到了这样的问题,搜了一下,网上有人这样问过:在同一个页面用两个不同风格的百度分享代码,就会冲突,其中一个出不来,怎么解决?

一般来说,出现这样的问题是因为上面说的使用了两种不同风格的分享组件,比如下面的图标式和浮窗式:

其实,同时使用两种风格的百度分享组件并不会冲突,只是你的代码有问题。

观察

先让我们看一下百度分享的代码:

图标式

<div class="bdsharebuttonbox"><a href="#" class="bds_more" data-cmd="more"></a><a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a><a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a><a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"></a><a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网"></a><a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"></a></div>

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}}with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)]</script>

观察上面的代码,代码分成 HTML 和 JS 两部分。HTML 部分放在页面中需要呈现分享按钮的地方,JS 部分只要页面能加载就行了,而且只需要一份就够了,优化的话放在页脚。另外,如果页面中想呈现多处分享按钮,只需布置多处 HTML 代码。

如何做代码优化:其中的HTML代码部分放到页面中您期望分享按钮出现的地方,而javascript代码放到页面最底部(</body>前)。—— 百度分享帮助文档

浮窗式

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"slide":{"type":"slide","bdImg":"0","bdPos":"right","bdTop":"100"}}with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)]</script>

浮窗式的分享按钮无需添加HTML代码,只需要插入javascript代码就可以了。如果您的网站使用的模板,您也可以复制代码到您的模板,按钮将在所有网页自动出现。—— 百度分享帮助文档

文字式

和图标式差不多,这里就不列举了。

解决方法

一般我们要同时使用两种风格的组件时,就直接傻乎乎地把两段代码都复制到页面中。的确,我们习惯这样做了,我也这么干的。但是,还是先才代码入手吧,百度给的代码是压缩了的(Compressed),所以先 Format 一下呗,HTML 我们不用管,它们是你添加的按钮的 List:

<div class="bdsharebuttonbox">

<a href="#" class="bds_more" data-cmd="more"></a>

<a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a>

<a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a>

<a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"></a>

<a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网"></a>

<a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"></a>

</div>

主要比较一下图标式和浮窗式两者的 JS 代码:

图标式浮窗式

window._bd_share_config = {

"common": {

"bdSnsKey": {},

"bdText": "",

"bdMini": "2",

"bdMiniList": false,

"bdPic": "",

"bdStyle": "0",

"bdSize": "16"

},

"share": {}

}

with(document) ... 省略 n 字符

window._bd_share_config = {

"common": {

"bdSnsKey": {},

"bdText": "",

"bdMini": "2",

"bdMiniList": false,

"bdPic": "",

"bdStyle": "0",

"bdSize": "16"

},

"slide": {

"type": "slide",

"bdImg": "0",

"bdPos": "right",

"bdTop": "100"

}

}

with(document) ... 省略 n 字符

上面两段代码,不同部分就 window._bd_share_config 的内容(省略的内容是相同的),光看变量的命名就能明白

_bd_share_config 百度分享配置参数

common 通用配置,是各种风格的通用配置

slide 说明是浮窗式的啊,它会滑动(slide)

所以如果要同时使用这两种风格的代码,试着在一段 Javascript 代码中添加配置信息。

window._bd_share_config = {

"common": {

"bdSnsKey": {},

"bdText": "",

"bdMini": "2",

"bdMiniList": false,

"bdPic": "",

"bdStyle": "0",

"bdSize": "16"

},

"share": {},

"slide": { // 跟图标式的代码相比,这里是添加了浮窗式 slide 属性配置

"type": "slide",

"bdImg": "0",

"bdPos": "right",

"bdTop": "100"

}

}

with(document) 0[(getElementsByTagName('head')[0] || body)

.appendChild(createElement('script'))

.src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='

+ ~(-new Date() / 36e5)]

这样的话,只要配合 HTML 我们就能同时得到图标式分享按钮和浮窗式的分享按钮了!