亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳解微信JS-SDK選擇圖片遇到的坑

2019-11-19 13:15:21
字體:
來源:轉載
供稿:網友

有個需求要在微信企業號里面做開發,有個功能是選擇圖片,使用input標簽肯定是不管用了,Android手機上不能多選,所以使用了微信的JS-SDK提供的相關API,這個地方真的是有坑,記錄一下。按照文檔直接引入js文件即可,如果使用的是Vue,也可以使用weixin-js-sdk,兩種方式都可以。

圖片在Android上無法預覽

js-sdk的chooseImage 接口返回的結果是localId,類似于wxLocalResource://xxxxxx,如果想得到它的base64串需要再調用getLocalImgData方法,因為我們后臺接口里需要用到這個base64串,所以通過這個接口來獲取base64串作展示,而不是用文檔里介紹的方法。那這里有個坑,從Android獲取的localData是不帶有base64前綴的,要處理一下。

selectImage: function () {  let context = this;  wx.chooseImage({    count: 9,    sizeType: ['compressed'],     sourceType: ['album', 'camera'],     defaultCameraMode: "normal",     success: function (res) {      // localIds是在data里定義的一個localId數組      context.localIds = res.localIds;      // 不能直接遍歷這個數組      context.updateBase64Data(context.localIds.shift());    },    fail: function (res) {      alert('選擇圖片失敗:' + res.errMsg);    },  });},updateBase64Data: function (localId) {  let context = this;  wx.getLocalImgData({    localId: localId, // 圖片的localID    success: function (res) {      let localData = res.localData;      let prefix = 'base64,';      let index = localData.indexOf(prefix);      let actData = localData;      // 我現在是設置參數,如果是展示的話則應該是添加頭部data:image/jpeg;base64,      if (index > -1) {        actData = localData.substring(index + 7);      }      // base64Array是在data里定義的一個base64串數組      context.base64Array.push(actData);            if (context.localIds.length > 0) {        context.updateBase64Data(context.loaclIds.shift());      } else {        // 執行處理      }    },    fail: function (res) {      alert('選擇圖片失敗:' + res.errMsg);    },  });},

getLocalImgData獲取多張圖片無響應

chooseImage方法獲取到是一個localId的數組,如果直接遍歷這個數組去調用getLocalImgData時它只會執行一次,后面的無論怎樣都不會執行,猜測應該是跟它localId的獲取有關系。所以采取了上面代碼中遞歸的方式調用,當連續調用uploadImage上傳圖片時也要這么做。

Android無法選擇原圖

盡管在chooseImage方法可以通過sourceType字段指定是原圖還是壓縮后的圖,但是只要調用了getLocalImgData方法,那獲取到的base64串展示一定是模糊的。你在想是不是Android上面不能使用原圖啊,錯了,仔細看IOS上面的圖也是不清楚的,測試發現確實是這樣,原圖1.8M,使用js-sdk選擇的原圖只有不到240K,那為什么Android會模糊但是IOS比較清楚呢,你是不是又想這不是IOS和Android系統的區別吧,把同一張圖片通過getLocalImgData方法獲取到的base64串做比對發現,Android上得到的base64串前綴是以gCM開頭,而IOS則是以/9j/開頭,從PC上選擇的圖也是以/9j/開頭,自己解析的圖片也是以/9j/開頭,所以不是因為壓縮變模糊了,是因為使用了不一樣的編碼變模糊了。如果真的想選擇原圖,先把圖片上傳到微信服務器,然后使用獲取臨時素材的接口https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID,把圖片下載下來,經測試這樣其實也是有壓縮的,這個是企業號的API如果用公眾號地址是https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID。代碼就不貼了,與上面的基本一致。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线观看91久久久久久| 欧美裸身视频免费观看| 久久夜色精品国产亚洲aⅴ| 欧美性猛交xxxx| 欧美国产日韩一区二区在线观看| 91影院在线免费观看视频| 亚洲欧洲免费视频| 亚洲人成伊人成综合网久久久| 91精品久久久久久| 欧洲日本亚洲国产区| 91免费福利视频| 亚洲视频网站在线观看| 亚洲天堂开心观看| 国模叶桐国产精品一区| 91国产高清在线| 日韩美女视频免费在线观看| 国产999精品久久久影片官网| 色噜噜狠狠狠综合曰曰曰88av| 久久久久久久久久久国产| 欧美日韩国产综合视频在线观看中文| 日韩av在线一区二区| 操日韩av在线电影| 国产综合福利在线| 亚州国产精品久久久| 成人444kkkk在线观看| 神马久久久久久| 国产精品久久在线观看| 日韩中文字幕在线看| 成人久久18免费网站图片| 伦伦影院午夜日韩欧美限制| 国产精品午夜视频| 国产精品黄色影片导航在线观看| 韩国19禁主播vip福利视频| 亚洲国产成人91精品| 亚洲国产精品一区二区三区| 日韩精品视频中文在线观看| 91老司机在线| 日韩视频第一页| 日韩中文理论片| 91精品国产电影| 深夜福利亚洲导航| 成人乱色短篇合集| 亚洲欧美日韩在线高清直播| 国产欧美久久久久久| 欧美日韩性视频在线| 久久久久久久久久国产精品| 久久久久久久999精品视频| 欧美性xxxx极品hd欧美风情| 国产91色在线|| 主播福利视频一区| 成人黄色网免费| 国产九九精品视频| 亚洲综合在线做性| 一区二区欧美日韩视频| 日韩精品在线看| 欧美精品18videos性欧美| 欧美日韩亚洲视频一区| 久久久久久久av| 欧美黑人巨大精品一区二区| 国产精品18久久久久久麻辣| 国产精品精品国产| 日韩在线观看免费网站| 久久久久久久香蕉网| 欧美成人午夜免费视在线看片| 国产精品免费视频久久久| 亚洲第一综合天堂另类专| 欧美多人乱p欧美4p久久| 色偷偷av亚洲男人的天堂| 欧美精品在线观看| 青青久久av北条麻妃海外网| 午夜精品久久久久久久久久久久| 日本久久久久久久久| 精品国内产的精品视频在线观看| 国语自产精品视频在线看一大j8| 精品露脸国产偷人在视频| 亚洲美女久久久| 国产精品久久久久久久久男| 欧美色欧美亚洲高清在线视频| 一区二区三区回区在观看免费视频| 国内精品国产三级国产在线专| 中文欧美在线视频| 日韩av免费在线播放| 国产色视频一区| 欧美一级片久久久久久久| 亚洲电影天堂av| 国产精品国产三级国产aⅴ9色| 91在线高清视频| 亚洲色图第三页| 午夜精品久久久久久久久久久久久| 色999日韩欧美国产| 欧美性生交大片免网| 国产玖玖精品视频| 精品av在线播放| 国产精品激情av电影在线观看| 热草久综合在线| www高清在线视频日韩欧美| 亚洲女人初尝黑人巨大| 亚洲第一页自拍| 亚洲欧美在线磁力| www.日韩不卡电影av| 久久资源免费视频| 国产suv精品一区二区| 亚洲人永久免费| 亚洲肉体裸体xxxx137| 久热精品在线视频| 中文字幕不卡av| 这里只有精品丝袜| 在线播放日韩欧美| 国产精品九九久久久久久久| 国产成人精品久久久| 亚洲国产精品99| 精品免费在线视频| 久久精品视频播放| 日韩欧美亚洲综合| 91av福利视频| 日韩中文在线中文网三级| 亚洲另类xxxx| 97香蕉超级碰碰久久免费软件| 欧洲中文字幕国产精品| 国外成人在线直播| 国产精品视频自在线| 91wwwcom在线观看| 国产精品久久久久久久久久新婚| 欧美激情xxxx性bbbb| 91精品国产免费久久久久久| 亚洲最大在线视频| 综合欧美国产视频二区| 色综合伊人色综合网| 亚洲国产黄色片| 日韩高清电影免费观看完整| 黄色成人在线播放| 68精品久久久久久欧美| 亚洲国产精品高清久久久| 欧美日韩亚洲激情| 久久精品视频在线| 亚洲一区中文字幕| 日韩在线资源网| 91久久久久久国产精品| 日韩中文字幕国产精品| 亚洲一区二区在线| 国产小视频91| 中文字幕一精品亚洲无线一区| 按摩亚洲人久久| 日韩欧美国产成人| 欧美日韩国产999| 亚洲香蕉成人av网站在线观看| 成人黄色片在线| 成人av色在线观看| 国产精品99久久久久久人| 中文字幕日韩专区| 国产91网红主播在线观看| 91精品在线观看视频| 亚洲黄色免费三级| 国产v综合v亚洲欧美久久| 国产欧美日韩中文字幕| 日韩欧美国产一区二区| 日本精品性网站在线观看| 国内精品模特av私拍在线观看| 精品国产91久久久久久| 久久久久99精品久久久久| 亚洲综合一区二区不卡| 午夜精品久久久久久久白皮肤| 精品国产乱码久久久久久婷婷| 91免费国产视频|