微信JSSDK多圖片上傳

由于設(shè)計(jì)需求更改屈尼,需要從單圖片上傳改成單/多圖片上傳炊汹。剛開(kāi)始我覺(jué)得這很好改躬充,改改參數(shù)樣式邏輯什么的就好了。微信使用JSSDK調(diào)用圖像接口。上傳分成兩步: 選擇圖片和上傳圖片充甚。

選擇圖片

  chooseImage () {
      window.wx && window.wx.chooseImage({
        count: this.multi ? 9 : 1,
        sizeType: ['original', 'compressed'],
        sourceType: ['album', 'camera'],
        success: (res) => {
          uploadImage(this, res.localIds)
        }
      })
    }
  • 選擇圖片成功后得到的localIds是選定照片的本地ID列表以政,localId可以作為img標(biāo)簽的src屬性顯示圖片
  • this.multi來(lái)控制單/多圖片上傳,單圖片上傳每回只能上傳一張圖片伴找,所以選擇圖片的時(shí)候也只能選擇一張妙蔗,上傳的圖片會(huì)替換掉之前上傳的圖片。
  • 多圖片上傳一次可選擇任意張圖片上傳疆瑰,這里我設(shè)置最多9張眉反,試過(guò)能設(shè)置的最大值也是9。

上傳圖片

const uploadImage = (vm, localIds, idx = 0) => {
  const localId = localIds[idx]
  window.wx.uploadImage({
    localId: localId,
    isShowProgressTips: 1,
    success (res) {
      vm.multi ? vm.value.push(res.serverId) : vm.value = [res.serverId]

      if (window.__wxjs_is_wkwebview) {
        getLocalImgData(vm, localId)
      } else {
        vm.multi ? vm.images.push(localId) : vm.images = [localId]
      }

      if (++idx < localIds.length) {
        window.setTimeout(() => uploadImage(vm, localIds, idx), 500)
      }
    }
  })
}

上傳成功后返回圖片的服務(wù)器端ID穆役。因?yàn)槲⑿派蟼鲌D片有效期只有3天寸五,我們項(xiàng)目這里是前端直接傳服務(wù)器ID給后臺(tái),后臺(tái)根據(jù)ID去微信端拿圖片耿币,存儲(chǔ)到阿里云上梳杏,得到圖片的地址。
單圖片上傳的時(shí)候淹接,把微信開(kāi)發(fā)文檔的代碼拿過(guò)來(lái)修修就能用了十性。多圖片我更正了兩回,才達(dá)到預(yù)期效果塑悼。

  • 第一回開(kāi)始直接for循環(huán)調(diào)用uploadImage劲适,微信直接重啟,再進(jìn)入我之前上傳的頁(yè)面厢蒜,看到只上傳成功了幾張霞势,不完整。上網(wǎng)搜了搜斑鸦,說(shuō)是連續(xù)調(diào)用微信API會(huì)出問(wèn)題愕贡,就改成遞歸的方式。
  • but巷屿,再次調(diào)試的時(shí)候雖然不死機(jī)固以,多張圖片有時(shí)上傳完整,有時(shí)不完整嘱巾,后面看出規(guī)律憨琳,網(wǎng)速快的時(shí)候上傳不完整。額浓冒,看來(lái)調(diào)用API還是太快巢掺,我就給每次調(diào)用成功后來(lái)個(gè)500毫秒間隔算途,這樣總算沒(méi)問(wèn)題了冬耿。

IOS顯示問(wèn)題

const getLocalImgData = (vm, localId) => {
  window.wx.getLocalImgData({
    localId: localId,
    success: function (res) {
      vm.multi ? vm.images.push(localId) : vm.images = [res.localData]
    }
  })
}

IOS微信顯示圖片的時(shí)候我們需要調(diào)用getLocalImgData方法拿到圖片的base64編碼焕济,用于替換localId顯示圖片慢味。原因開(kāi)發(fā)文檔上是這樣說(shuō)明的。

備注:此接口僅在 iOS WKWebview 下提供墅冷,用于兼容 iOS WKWebview 不支持 localId 直接顯示圖片的問(wèn)題纯路。

把問(wèn)題解決之后感覺(jué)好輕松!~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寞忿,一起剝皮案震驚了整個(gè)濱河市驰唬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌腔彰,老刑警劉巖叫编,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異霹抛,居然都是意外死亡搓逾,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)杯拐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)霞篡,“玉大人,你說(shuō)我怎么就攤上這事端逼±时” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵顶滩,是天一觀(guān)的道長(zhǎng)余掖。 經(jīng)常有香客問(wèn)我,道長(zhǎng)诲祸,這世上最難降的妖魔是什么浊吏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮救氯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘歌憨。我一直安慰自己着憨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布务嫡。 她就那樣靜靜地躺著甲抖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪心铃。 梳的紋絲不亂的頭發(fā)上准谚,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音去扣,去河邊找鬼柱衔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的唆铐。 我是一名探鬼主播哲戚,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼艾岂!你這毒婦竟也來(lái)了顺少?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤王浴,失蹤者是張志新(化名)和其女友劉穎脆炎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體氓辣,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秒裕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了筛婉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片簇爆。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖爽撒,靈堂內(nèi)的尸體忽然破棺而出入蛆,到底是詐尸還是另有隱情,我是刑警寧澤硕勿,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布哨毁,位于F島的核電站,受9級(jí)特大地震影響源武,放射性物質(zhì)發(fā)生泄漏扼褪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一粱栖、第九天 我趴在偏房一處隱蔽的房頂上張望话浇。 院中可真熱鬧,春花似錦闹究、人聲如沸幔崖。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)赏寇。三九已至,卻和暖如春价认,著一層夾襖步出監(jiān)牢的瞬間嗅定,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工用踩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留渠退,地道東北人忙迁。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像智什,于是被迫代替她去往敵國(guó)和親动漾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345