2014-03-25 25 views
5

問題微信分享,如何更改重新分享描述和縮略圖?

是否有提供自定義標題,描述和縮略圖時,我的網頁是從微信內共享的一種方式?

背景

我們有一個iPhone應用程序從哪些用戶可以使用微信(又名味辛)他們的朋友發佈/分享訊息。

從應用程序共享標題,說明和圖像時,通過共享頁面的API發佈(根據需要在應用程序中共享時顯示)。分享後,朋友在微信(而不是我們的應用)中打開這些頁面。

問題是,當朋友使用微信自己的分享按鈕重新分享我們的網頁時,它會丟失我們提供的描述。它將與HTML標題標籤(頁面上的第一個圖像(伸展或擠壓成方形縮略圖))重新共享,並且描述最初只顯示頁面的URL。

我曾嘗試在描述元標記中提供描述,但沒有運氣。我甚至嘗試過Facebook風格/開放圖形:描述元標籤。

旁註

我已經通過在中國的網站,似乎已經克服了這個問題的來源看。我認爲這是使用某種稱爲WeixinJSBridge的JavaScript插件解決的。不幸的是,我一直無法用英語發現任何文件 - 我的中文不是很好,我說的不是很好,我無法讀一個字。

回答

4

[自微信發佈新版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); 

+1

這做到了!謝謝,作爲額外的獎勵,它沒有微信應用程序ID。 – davur

+0

我試過使用上面的,但是它給了我下面的錯誤 - 類型錯誤:WeixinJSBridge.invoke不是函數 WeixinJSBridge.invoke('shareTimeline',{ 我應該失蹤simething。任何線索? –

+0

@ Wen's答案已過時,不再支持,微信在2015年1月發佈了新的JS SDK。 – cloud

0

其實現在微信確實提供的iOS /安卓SDK用於共享內容在瞬間或與朋友,這裏是說英文文檔:http://dev.wechat.com/wechatapi/messages-moments

+0

謝謝@John Wang。特別是它是一個PhoneGap html/js應用程序,所以被接受的解決方案仍然是更好的選擇(在問題本身沒有說明,但可以從標籤中推斷出來),但對於編寫像這樣的原生iOS應用程序,這看起來很有趣。很高興看到英文文檔。 – davur