微信分享,如何更改转发描述和缩略图?
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 应用程序的人来说确实很有趣。很高兴看到英文文档。 网址链接失效以上是关于微信分享,如何更改转发描述和缩略图?的主要内容,如果未能解决你的问题,请参考以下文章