最近在做項(xiàng)目的時(shí)候遇到了一個(gè)問(wèn)題,規(guī)則流程是如下,首先需要掃描條形碼獲取條形碼號(hào),然后將條形碼號(hào)傳遞給第三方交來(lái)的視圖中進(jìn)行索引查詢,將查詢結(jié)果附在當(dāng)前APP中。
項(xiàng)目中使用的是FNScanner模塊,模塊可以采用兩種方式進(jìn)行調(diào)用,一種是直接調(diào)用 openScanner 接口,打開(kāi)自帶默認(rèn) UI 效果的二維碼/條形碼掃描頁(yè)面,另一種是通過(guò) openView 接口打開(kāi)一個(gè)自定義大小的掃描區(qū)域進(jìn)行掃描。意思就是可以從何另一個(gè)界面打開(kāi),這個(gè)界面可以自定義,從而實(shí)現(xiàn)自定義掃描界面的功能。然后在配合使用 setFrame、closeView、switchLight 等方法來(lái)實(shí)現(xiàn)開(kāi)關(guān)閃光燈、重設(shè)掃描界面位置大小、圖片解碼、字符串編碼等相關(guān)功能。
從上面的介紹上來(lái)看第一種方法更為簡(jiǎn)單,不需要設(shè)定界面樣式,直接調(diào)用模塊的界面即可使用,也具備開(kāi)關(guān)閃光燈,相冊(cè)讀取條形碼,攝像頭掃描條形碼的功能。第二種使用起來(lái)相對(duì)比較復(fù)雜一些,但是可以根據(jù)自己的喜好更改樣式,即自由發(fā)揮空間更多,所做出的的掃碼界面也更符合當(dāng)前APP的使用情況,當(dāng)然這只是其中一部分的優(yōu)勢(shì)。
針對(duì)第二種使用方法如果細(xì)心的話還可以發(fā)現(xiàn)可以自定義的內(nèi)容比較多,最直接有效的就是interval的參數(shù),可以自定義連續(xù)掃碼間隔,我們這次項(xiàng)目中就遇到了條形碼打印不清楚的情況,就需要將interval設(shè)置為最小1,可以快速的重新在次掃碼解決識(shí)別率低的問(wèn)題。
上面這個(gè)條碼豎條的地方印刷不夠清晰,在掃碼的時(shí)候經(jīng)常出現(xiàn)掃碼失敗的情況,針對(duì)這種條碼我們固定掃描框的大小,將條碼完整放置在我們?cè)O(shè)定的寬度和高度中,并且將interval時(shí)間設(shè)置為最小1,為方便識(shí)別還可以設(shè)置下對(duì)焦寬度條,二維碼在邊框內(nèi)占據(jù)至少80%以上,識(shí)別速度極快(這還是同事神棍子發(fā)現(xiàn)的這一規(guī)律)。
以上就是FNScanner的使用方法和使用的注意事項(xiàng),希望在APP開(kāi)發(fā)中能夠起到作用,也歡迎在開(kāi)發(fā)中遇到問(wèn)題的朋友一起相互交流和學(xué)習(xí)。