之前公司公眾號功能只有掃二維碼,有一天突然要加掃一維碼功能。
因為當時感覺沒什么,在scanType里加個barCode就好了呀,
然后就發現事情永遠不會有你想象的那么簡單。大概二十天之后bug才來,
找了好一陣才發現是微信的問題
微信的掃一維碼直接返回結果的話會在結果前加上CODE_128,
比如這個一維碼上的信息是20180528,掃出來的就是CODE_128,20180528
解決起來還是異常簡單的
wx.scanQRCode({ needResult : 1, // 默認為0,掃描結果由微信處理,1則直接返回掃描結果, scanType : [ "qrCode","barCode"], // 可以指定掃二維碼還是一維碼,默認二者都有 success : function(res) { var result = res.resultStr; if(result.includes('CODE_128')){ result = result.split(',')[1]; } });
被公司空調吹的感冒了,巨難受
——————————————————————————————20180529更新
在微信掃條形碼時 返回不止有結果前加“CODE_128,”情況,在查詢api,詢問客服無果之后,
試驗了一些條形碼 發現微信會在直接返回的結果前加EAN_8, EAN_13, CODE_25, CODE_39, CODE_128, UPC_A, UPC_E,之一,目前如果不能明確一維碼的類型,只能根據逗號進行判斷並取后邊的值 代碼如下
wx.scanQRCode({ needResult : 1, // 默認為0,掃描結果由微信處理,1則直接返回掃描結果, scanType : [ "qrCode","barCode"], // 可以指定掃二維碼還是一維碼,默認二者都有 success : function(res) { var result = res.resultStr; if(result.includes(',')){ result = result.split(',')[1]; } });
另外說幾句沒有用的 支付寶就不會出現這種狀況,掃到什么返回什么 開發者要的是就是直接返回結果,他丫的直接返回結果還給我改了結果值 神xx直接返回結果呦.............
有種微信很自大的感覺