微信分享,如何更改转发描述和缩略图?

Posted

技术标签:

【中文标题】微信分享,如何更改转发描述和缩略图?【英文标题】:WeChat sharing, how to change re-share description and thumbnail? 【发布时间】:2014-03-25 13:27:57 【问题描述】:

问题

当我的网站页面在微信内共享时,是否可以提供自定义标题、描述和缩略图?

背景

我们有一个 iPhone 应用程序,用户可以通过该应用程序使用微信(又名微信)与他们的朋友发布/分享帖子。

从应用共享时,标题、描述和图像会通过共享页面的 API 发布(这些在从应用共享时会根据需要显示)。分享后,朋友们会在微信(而不是我们的应用)中打开这些页面。

问题是当朋友使用微信自己的分享按钮重新分享我们的页面时,它会丢失我们提供的描述。它将与 html 标题标签重新共享页面上的第一张图片(拉伸或挤压成方形缩略图)以及最初的描述位置,它只显示页面的 URL。

我尝试在描述元标记中提供描述,但没有成功。我什至尝试过 Facebook 风格/开放图 og:description 元标记。

旁注

我在一个似乎已经解决了这个问题的中文网站上查看了源代码。我认为这是使用某种名为 WeixinJSBridge 的 javascript 插件解决的。不幸的是,我无法找到任何英文文档 - 我的中文不是很好,我说的不是很好,我一个字都看不懂。

【问题讨论】:

只是一个注释,因为我很难找到最新的英文文档,它可以在这里找到:mp.weixin.qq.com/wiki?t=resource/… - 如果你打开它,最后的 &lang=en_US 部分将被替换,你不能轻松了解该选项。 【参考方案1】:

[微信发布新的JS SDK后不工作]这是微信的解决方案:http://mp.weixin.qq.com/qa/index.php?qa=3163 不过,全是中国人。您可以尝试的代码如下:


var imgUrl = 'http://xxx/your-share-icon.png';
var lineLink = 'http://xxx/your-share-link';
var descContent = "your-content-desc";
var shareTitle = 'you-share-title';
var appid = 'your-app-id (from WeChat)';

function shareFriend() 
    WeixinJSBridge.invoke('sendAppMessage',
                            "appid": appid,
                            "img_url": imgUrl,
                            "img_width": "640",
                            "img_height": "640",
                            "link": lineLink,
                            "desc": descContent,
                            "title": shareTitle
                            , function(res) 
                            _report('send_msg', res.err_msg);
                            )

function shareTimeline() 
    WeixinJSBridge.invoke('shareTimeline',
                            "img_url": imgUrl,
                            "img_width": "640",
                            "img_height": "640",
                            "link": lineLink,
                            "desc": descContent,
                            "title": shareTitle
                            , function(res) 
                            _report('timeline', res.err_msg);
                            );

function shareWeibo() 
    WeixinJSBridge.invoke('shareWeibo',
                            "content": descContent,
                            "url": lineLink,
                            , function(res) 
                            _report('weibo', res.err_msg);
                            );

// WeChat browser will initial by above function and trigger WeixinJSBridgeReady event.
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() 

        // share to friend
        WeixinJSBridge.on('menu:share:appmessage', function(argv)
            shareFriend();
            );

        // share to timeline
        WeixinJSBridge.on('menu:share:timeline', function(argv)
            shareTimeline();
            );

        // share to weibo
        WeixinJSBridge.on('menu:share:weibo', function(argv)
            shareWeibo();
            );
        , false);

【讨论】:

做到了!谢谢,作为额外的奖励,它可以在没有微信应用 ID 的情况下工作。 我尝试使用上述方法,但它给了我以下错误 - TypeError: WeixinJSBridge.invoke is not a function WeixinJSBridge.invoke('shareTimeline', 我应该错过什么。任何线索这个? @Wen 的回答已经过时了。它不再受支持。微信于 2015 年 1 月发布了新的 JS SDK。【参考方案2】:

其实微信现在确实提供了ios/​​Andriod SDK,可以在朋友圈或者朋友圈分享内容,这里是英文文档:http://dev.wechat.com/wechatapi/messages-moments

【讨论】:

谢谢@John Wang。在我的特殊情况下,它是一个 PhoneGap html/js 应用程序,因此接受的解决方案仍然更合适(问题本身没有说明,但可以从标签中推断出来)。但这对于那些编写像这样的原生 iOS 应用程序的人来说确实很有趣。很高兴看到英文文档。 网址链接失效

以上是关于微信分享,如何更改转发描述和缩略图?的主要内容,如果未能解决你的问题,请参考以下文章

微信二次分享

微信图文链接 —— 分享网页文章到微信时如何自定义缩略图链接标题和摘要

微信公众号分享链接不显示缩略图的解决方法

微信jssdk实现分享到微信

新版微信分享--图片和描述

微信小游戏转发分享等功能实现