該文檔爲平時開發中遇到的關於微信轉發的一些小問題,故將此記錄下來,如有遇到一樣問題的猿友,願能夠解決你的問題。可能有些地方寫的不是很好,請輕噴。若還有其餘的看法,也敬請提出,互相學習。api
登陸apiCloud官網模塊商店,尋找到微信模塊,並添加到對應的app項目中 【該模塊爲無償使用】bash
添加好以後,需進入微信開發平臺申請對應項目的key,須要app包名、 app icon,這個過程大概須要一天左右的時間。 具體能夠參考微信模塊文檔微信
一、微信只能分享本地的圖片,不能分享網絡圖片,因此須要先下載後再去進行轉發
二、微信對於照片的大小存在,不能超過10M【後面會提到一種參考的解決方法】
三、config.xml中需配置正確的微信開發平臺申請的項目KEY
複製代碼
let wx = api.require('wx');
wx.isInstalled(function(ret, err) { // 先判斷手機端是否存在微信客戶端
if (ret.installed) {
// 下載,並判斷圖片是否過大於10M,則不能分享
api.download({
url: 'http://xxxxx', //網絡圖片下載 url
savePath: `fs://image/shareImg${new Date().getTime()}_${parseInt(Math.random() * 1000)}.png`, //圖片存儲路徑,隨機命名圖片
report: true,
cache: true,
allowResume: true
}, function(ret, err) {
that.isLoading = true
if (ret.state == 1) {
that.isLoading = false
if (ret.fileSize && ret.fileSize >= 10 * 1000 * 100) {
api.toast({
msg: '圖片大於10M,沒法分享',
duration: 1500,
location: 'middle'
})
return
}
wx.shareImage({
scene : 'session',
contentUrl : ret.savePath // 此處使用savePath便可,無需使用fs
}, function(ret, err) {
if (ret.status) {
api.toast({
msg: '分享成功',
duration: 1500,
location: 'middle'
})
} else {
api.toast({
msg: '分享失敗,錯誤代碼爲' + err.code,
duration: 1500,
location: 'middle'
})
}
});
} else if (ret.state == 0){
// api.toast({
// msg: '圖片下載中',
// duration: 1000,
// location: 'middle'
// })
} else {
that.isLoading = false
api.toast({
msg: '圖片下載失敗,沒法分享',
duration: 1500,
location: 'middle'
})
}
});
} else {
api.toast({
msg: '當前設備未安裝微信客戶端',
duration: 1500,
location: 'middle'
})
}
})
}
複製代碼
能夠使用apiCloud中api對象的imageCache,缺點就是分享的圖片會出現模糊。網絡
重複處理壓縮圖片質量大小,使其質量小於10Msession