apiCloud使用微信轉發時的注意事項

序言

該文檔爲平時開發中遇到的關於微信轉發的一些小問題,故將此記錄下來,如有遇到一樣問題的猿友,願能夠解決你的問題。可能有些地方寫的不是很好,請輕噴。若還有其餘的看法,也敬請提出,互相學習。api

apiCloud 引入微信模塊

登陸apiCloud官網模塊商店,尋找到微信模塊,並添加到對應的app項目中 【該模塊爲無償使用】bash

添加好以後,需進入微信開發平臺申請對應項目的key,須要app包名、 app icon,這個過程大概須要一天左右的時間。 具體能夠參考微信模塊文檔微信

開始使用微信轉發功能

  • 注意事項【可針對不能轉發的狀況debug】
一、微信只能分享本地的圖片,不能分享網絡圖片,因此須要先下載後再去進行轉發
二、微信對於照片的大小存在,不能超過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'
            })
          }
        })
      }
複製代碼

關於大於10M圖片轉發的參考解決方案

能夠使用apiCloud中api對象的imageCache,缺點就是分享的圖片會出現模糊。網絡

重複處理壓縮圖片質量大小,使其質量小於10Msession

相關文章
相關標籤/搜索