国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

微信JSSDK多圖片上傳并且解決IOS系統上傳一直加載的問題

2019-10-21 18:55:46
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了微信JSSDK多圖片上傳并且解決IOS系統上傳一直加載的問題的相關資料,需要的朋友可以參考下
 

微信多圖片上傳必須挨個上傳,也就是不能并行,得串行:

那么我們可以定義一個如下所示的上傳函數:

var serverIds = [];function uploadImages(localImagesIds) {if (localImagesIds.length === 0) {$.showPreloader('正在提交數據...');$('form').submit();}wx.uploadImage({localId: localImagesIds[0], // 需要上傳的圖片的本地ID,由chooseImage接口獲得isShowProgressTips: 1, // 默認為1,顯示進度提示success: function (res) {serverIds.push(res.serverId); // 返回圖片的服務器端IDlocalImagesIds.shift();uploadImages(localImagesIds);},fail: function (res) {$.alert('上傳失敗,請重新上傳!');}});}

上傳函數定義了,那么當點擊圖片框的時候,需要選擇圖片,定義如下:

//選擇圖片$('#uploadImages img').on('click', function () {var $img = $(this);wx.chooseImage({count: 1, // 默認9sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認二者都有sourceType: ['album', 'camera'], // 可以指定來源是相冊還是相機,默認二者都有success: function (res) {var localIds = res.localIds; // 返回選定照片的本地ID列表,localId可以作為img標簽的src屬性顯示圖片//$.alert(localIds[0]);$img.attr('src', localIds[0]).addClass('uploaded');},fail: function (res) {alert(JSON.stringify(res));}});});

當用戶選擇了所有的圖片之后,就需要上傳圖片了。這里就需要用到我們剛才定義的函數了,具體代碼如下所示:

//提交事件$('#btnSubmit').on('click', function () {var $chooseImages = $('#uploadImages img.uploaded');if ($chooseImages.length === 0) {$.alert('請上傳照片!');return;}$.showPreloader('正在上傳照片...');var localImagesIds = [];$chooseImages.each(function () {localImagesIds.push($(this).attr('src'));});uploadImages(localImagesIds);});

如上面代碼所示,改處調用了函數uploadImages,然后將localImagesIds傳遞過來了。在uploadImages函數中,使用了遞歸,但一張圖片上傳完成后,就會再次調用本身,繼續上傳下一張圖片,請注意以下關鍵代碼:

wx.uploadImage({localId: localId, // 需要上傳的圖片的本地ID,由chooseImage接口獲得isShowProgressTips: 1, // 默認為1,顯示進度提示success: function (res) {serverIds.push(res.serverId); // 返回圖片的服務器端IDlocalImagesIds.shift();uploadImages(localImagesIds);},fail: function (res) {$.alert('上傳失敗,請重新上傳!');}});

這樣,一切看起來是OK的,而且Android系統沒有任何問題。但是,IOS卻無法正常上傳,一直會顯示加載狀態。代碼反復檢查,木有任何問題,那么肯定是微信的坑了。。。。

歷經九九八十一難,終于找到解決辦法:

var localId = localImagesIds[0];//解決IOS無法上傳的坑if (localId.indexOf("wxlocalresource") != -1) {localId = localId.replace("wxlocalresource", "wxLocalResource");}

uploadImages全部代碼如下所示:

function uploadImages(localImagesIds) {if (localImagesIds.length === 0) {$.showPreloader('正在提交數據...');$('form').submit();}var localId = localImagesIds[0];//解決IOS無法上傳的坑if (localId.indexOf("wxlocalresource") != -1) {localId = localId.replace("wxlocalresource", "wxLocalResource");}wx.uploadImage({localId: localId, // 需要上傳的圖片的本地ID,由chooseImage接口獲得isShowProgressTips: 1, // 默認為1,顯示進度提示success: function (res) {serverIds.push(res.serverId); // 返回圖片的服務器端IDlocalImagesIds.shift();uploadImages(localImagesIds);},fail: function (res) {$.alert('上傳失敗,請重新上傳!');}});}

以上所述是針對微信JSSDK多圖片上傳并且解決IOS系統上傳一直加載的問題的相關介紹,希望對大家有所幫助!



注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广丰县| 镇原县| 泸州市| 佛冈县| 江华| 肇州县| 平顺县| 静乐县| 汉中市| 汝南县| 武功县| 吴旗县| 独山县| 织金县| 罗定市| 潞城市| 拉孜县| 台州市| 静海县| 贵州省| 高邑县| 济阳县| 于都县| 亚东县| 若尔盖县| 通州区| 英山县| 金昌市| 阜城县| 顺昌县| 巴东县| 洪泽县| 赤峰市| 隆德县| 贵港市| 白城市| 噶尔县| 耒阳市| 邵武市| 同江市| 长子县|