<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      記錄--uni-app App端半屏連續(xù)掃碼

      這里給大家分享我在網(wǎng)上總結(jié)出來(lái)的一些知識(shí),希望對(duì)大家有所幫助

      本文用一個(gè)簡(jiǎn)單的 demo 講解 App端 半屏連續(xù)掃碼 的實(shí)現(xiàn)方式,包括(條形碼、二維碼等各種各樣的碼)。

      我會(huì)從實(shí)現(xiàn)思路講起,如果你比較急可以直接跳到 動(dòng)手實(shí)現(xiàn) 章節(jié)獲取代碼。

      開發(fā)和運(yùn)行環(huán)境

      • 開發(fā)工具:HBuilderX
      • 前端框架:uni-app 我用了 vue3 的模式開發(fā)
      • 前端延伸能力:HTML5+
      • 運(yùn)行環(huán)境:一加8(安卓手機(jī))

      需求收集

      看到論壇上有人想在 App端 實(shí)現(xiàn) 連續(xù)掃碼 功能。

      認(rèn)真看了下圖,還是個(gè) 半屏 的掃碼框。

       

      只是看到提了下需求,并沒(méi)搜到多少解決方案。

      于是我去 uni-app官網(wǎng) 看了下,找到相關(guān)的內(nèi)容:

      <camera> 組件不支持 App 端使用(至少在寫本文時(shí)不支持);

      uni.scanCode 可以掃碼,但會(huì)跳到另一個(gè)界面,并在全屏的模式下掃碼,也不支持連續(xù)掃碼。

      當(dāng)然,用 uni.scanCode 可以在掃碼成功后再重新執(zhí)行一次,這樣就能實(shí)現(xiàn)連續(xù)掃碼的功能,但界面會(huì)跳來(lái)跳去(跳到掃碼界面,成功后又跳回app的界面,再執(zhí)行又跳到掃碼界面......)。

      提煉需求

      根據(jù)上面的信息,提煉出3個(gè)關(guān)鍵詞:

      • App端
      • 半屏
      • 連續(xù)掃碼

      我采用了 DCLOUD社區(qū) 《uni-app怎么自定義掃碼和連續(xù)掃》 里的需求。粗略的寫了下布局(我沒(méi)有精細(xì)寫樣式)

      最終實(shí)現(xiàn)的效果如下圖所示

      003.gif

      我用在線工具生成了2個(gè)二維碼,內(nèi)容分別為 “雷猴” 和 “鯊魚辣椒”。

      通過(guò)掃描二維碼,把內(nèi)容添加到頁(yè)面中。

      實(shí)現(xiàn)思路

      查文檔

      既然 uni-app 的組件和API 都沒(méi)有提供這方面的幫助,我就去 插件市場(chǎng) 看了下,要么只支持小程序,要么是收費(fèi)的。

      收費(fèi)的??????? 算了,大家都是打工人。

      現(xiàn)在 uni-app 官方文檔 和 插件市場(chǎng) 兩條路都走不通(主要是我窮),那還有一條路:html5+

      node.js 可以理解為前端向服務(wù)端的延展, html5+ 可以理解為前端向 App 的延展。

      為了不浪費(fèi)大家時(shí)間,我整理出本文要用到的 API 和 模塊。

      打開 html5+ 可以找到 barcode 掃碼模塊,該模塊有個(gè) create 方法 用來(lái)創(chuàng)建掃碼識(shí)別控件。

      plus.barcode.create() 方法又需要用到 plus.webview ,也就是會(huì)涉及到 webview 模塊

      webview 模塊 是用來(lái)管理應(yīng)用窗口界面的,也就可以弄一個(gè)半屏的窗口出來(lái)。

      整理

      相關(guān)方法都找到七七八八了,只需把邏輯整理好就可以編碼了。

      1. 【步驟1】弄一個(gè)窗口出來(lái)(半屏,或者你自己定個(gè)尺寸和定位吧)
      2. 【步驟2】弄一個(gè)掃碼控件對(duì)象出來(lái)
      3. 【步驟3】將掃碼控件添加到窗口
      4. 【步驟4】掃碼成功后將結(jié)果添加到頁(yè)面上
      5. 【步驟5】重新調(diào)用掃碼方法

      動(dòng)手實(shí)現(xiàn)

      我將上面5個(gè)步驟都在代碼注釋里標(biāo)記出來(lái)了。

      <template>
        <view class="page">
          <view class="title">掃碼結(jié)果</view>
      	<view class="result_list">
      	  <view v-for="item in list" :key="item" class="result_li">
      		{{ item }}
      	  </view>
      	</view>
        </view>
      </template>
      
      <script setup>
      import { onReady } from '@dcloudio/uni-app'
      import { ref } from 'vue'
      
      let webView = null // webview容器
      let barcode = null // 掃碼框
      
      const list = ref([]) // 掃碼結(jié)果 - 列表
      
      // 掃碼成功回調(diào)
      function onmarked(type, result) {
        // 【步驟4】將掃碼結(jié)果添加到 list 里
        list.value.push(result)
      
        // 【步驟5】1秒后再重新開啟掃碼
        setTimeout(() => {
      	barcode.start()
        }, 1000)
      }
      
      // 創(chuàng)建窗口和掃碼控件
      function createBarcode() {
        // 【步驟1】判斷有沒(méi)有創(chuàng)建過(guò) webview 容器,如果沒(méi)有就執(zhí)行創(chuàng)建操作
        if (!webView) {
          webView = plus.webview.open(
      	  '',
      	  'barCodeBox',
      	  {
      		top: '60px',
      		width: '100%',
      		height: '200px'
      	  }
      	)
        }
      
        // 【步驟2】判斷有沒(méi)有創(chuàng)建過(guò) 掃碼框,如果沒(méi)有就執(zhí)行創(chuàng)建操作
        if(!barcode){
      	barcode = plus.barcode.create(
      	  'barcode',
      	  [plus.barcode.QR], // 只掃二維碼
      	  {
      		top:'0px',
      		left:'0px',
      		width: '100%',
      		height: '200px',
      		position: 'static',
      		scanbarColor: '#f1c01f',
      		frameColor: '#c0ff01'
      	  }
      	)
      
      	barcode.onmarked = onmarked // 掃碼結(jié)果回調(diào)函數(shù)
      
          // 【步驟3】將掃碼框添加到 webview 里
      	plus.webview.getWebviewById('barCodeBox').append(barcode)
        }
      
        barcode.start() // 開始掃碼
      }
      
      // 在頁(yè)面加載時(shí),延遲300毫秒執(zhí)行創(chuàng)建掃碼框函數(shù)
      onReady(() => {
        setTimeout(() => {
      	createBarcode()
        }, 300)
      })
      </script>
      
      <style>
      .page {
        height: 100vh;
        display: flex;
        flex-direction: column;
        box-sizing: border-box;
        padding: 200px 20rpx 0;
      }
      
      .title {
        font-size: 50rpx;
        color: #333;
      }
      
      .result_list {
        flex: 1;
        overflow-y: auto;
        box-sizing: border-box;
        padding-top: 20rpx;
      }
      
      .result_li {
        box-sizing: border-box;
        margin-bottom: 20rpx;
        padding: 10rpx 20rpx;
        border: 1px solid #7298c8;
        border-radius: 10rpx;
        font-size: 40rpx;
      }
      </style>

      樣式我沒(méi)寫得很精細(xì),只是做了個(gè)粗糙的布局。

      相關(guān)文檔

      前端佬使用 uni-app 開發(fā) App端 ,建議粗略過(guò)一遍 HTML5+ 文檔,然后抽幾個(gè)自己感興趣的功能做個(gè)demo出來(lái)(這樣能省錢,插件市場(chǎng)的東西也不便宜)。

      掃碼相關(guān)

      barcode 模塊文檔

      plus.barcode.create 的第二個(gè)參數(shù)是一個(gè)數(shù)組,里面可以設(shè)置需要識(shí)別的條碼類型,可以同時(shí)支持多種條碼。

      barcode 支持多種條碼:

      • QR: QR二維碼,數(shù)值為0
      • EAN13: EAN條形碼標(biāo)準(zhǔn)版,數(shù)值為1
      • EAN8: ENA條形碼簡(jiǎn)版,數(shù)值為2
      • AZTEC: Aztec二維碼,數(shù)值為3
      • DATAMATRIX: Data Matrix二維碼,數(shù)值為4
      • UPCA: UPC條形碼標(biāo)準(zhǔn)版,數(shù)值為5
      • UPCE: UPC條形碼縮短版,數(shù)值為6
      • CODABAR: Codabar條形碼,數(shù)值為7
      • CODE39: Code39條形碼,數(shù)值為8
      • CODE93: Code93條形碼,數(shù)值為9
      • CODE128: Code128條形碼,數(shù)值為10
      • ITF: ITF條形碼,數(shù)值為11
      • PDF417: PDF 417二維條碼,數(shù)值為13

      我們?cè)诒纠兄饕玫?barcode.create 方法創(chuàng)建掃碼控件。

      本文只用了 掃碼成功的回調(diào) ,在你的業(yè)務(wù)中可能還需要用到 掃碼失敗的回調(diào)

      更多的配置和樣式設(shè)置,建議自行查閱官方文檔。本文的案例也有對(duì)掃碼框做了顏色的調(diào)整(隨便選了個(gè)顏色)。

      本文轉(zhuǎn)載于:

      https://juejin.cn/post/7072621583939928077

      如果對(duì)您有所幫助,歡迎您點(diǎn)個(gè)關(guān)注,我會(huì)定時(shí)更新技術(shù)文檔,大家一起討論學(xué)習(xí),一起進(jìn)步。

       

      posted @ 2023-02-03 16:32  林恒  閱讀(1114)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 极品人妻少妇一区二区三区| 国产精品自在线拍国产手青青机版| 无码人妻一区二区三区四区AV| 成年女人免费碰碰视频| 日韩中文字幕亚洲精品| 中文字幕国产日韩精品| 国产精品丝袜一区二区三区| 亚洲精品中文字幕码专区| 亚洲精品一区二区三区在| 欧洲女人牲交性开放视频| 无码福利写真片视频在线播放| 日韩av日韩av在线| 91精品乱码一区二区三区| 97精品人妻系列无码人妻| 一区二区三区四区高清自拍| 日韩精品av一区二区三区| 国产精品内射在线免费看| 青青草无码免费一二三区| 中文字幕无码视频手机免费看| 男女真人国产牲交a做片野外| 污网站在线观看视频| 少妇人妻精品一区二区| 精品国产中文字幕第一页| 国内少妇偷人精品免费| 亚洲欧美激情在线一区| 人妻少妇无码精品视频区| 男女激情一区二区三区| 国产午夜精品福利免费看| 亚洲国产精品综合久久2007| 樱花草视频www日本韩国| 国产精品国产三级国产试看| 日本高清免费不卡视频| 久久综合综合久久高清免费| 麻豆人人妻人人妻人人片av | 四虎国产精品成人免费久久| 亚洲 日本 欧洲 欧美 视频 | 加勒比亚洲视频在线播放| 久久无码中文字幕免费影院蜜桃 | 韩国午夜理伦三级| 亚洲 校园 欧美 国产 另类| 欧美成人午夜性视频|