• PDA 红外扫码 uniapp


    1、在utils文件夹下新建scan.js文件

    1. /**
    2. * pda红外线扫码
    3. */
    4. var main = ''
    5. var filter = ''
    6. var receiver = ''
    7. var codeQueryTag = false
    8. let scanSuccess = function(){} // 成功后的操作函数
    9. //开启服务监听
    10. export function initScan(successFun) {
    11. scanSuccess = successFun
    12. console.log('开启了监听');
    13. main = plus.android.runtimeMainActivity();//获取activity
    14. var IntentFilter = plus.android.importClass('android.content.IntentFilter');
    15. filter = new IntentFilter();
    16. filter.addAction("android.intent.ACTION_DECODE_DATA"); // 换你的广播动作 (设置-扫描设置-输出方式-输出方式改为Intent输出)
    17. receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {
    18. onReceive: function (context, intent) {
    19. plus.android.importClass(intent);
    20. let code = intent.getStringExtra("barcode_string");// 换你的广播标签
    21. queryCurrenCode(code);
    22. }
    23. });
    24. console.log('开启监听完成');
    25. }
    26. //这个得有,开启监听用
    27. export function startScan() {
    28. main.registerReceiver(receiver, filter);
    29. }
    30. //这个也得有,关闭监听用
    31. export function stopScan() {
    32. main.unregisterReceiver(receiver);
    33. }
    34. //这个是防止重复用的
    35. async function queryCurrenCode(code) {
    36. //防重复
    37. if (codeQueryTag) return false;
    38. codeQueryTag = true;
    39. setTimeout(() => {
    40. codeQueryTag = false;
    41. }, 150);
    42. console.log('调用接口啦------', code);
    43. scanSuccess(code)
    44. }

    2、使用页面:

    1. <script>
    2. import { initScan, startScan, stopScan } from "@/utils/scan";
    3. export default {
    4. onShow() {
    5. initScan(this.scanSuccess);
    6. startScan();
    7. },
    8. onHide() {
    9. stopScan();
    10. },
    11. methods: {
    12. // 红外线扫码成功后
    13. async scanSuccess(code) {
    14. console.log('红外线扫码的结果', code);
    15. // 下面就是写取到结果后的事情
    16. }
    17. },
    18. }
    19. script>

    附:红外线扫描配置(以优博讯的一款PDA为例)

    1、点击【设置】;找到【扫描设置】

    2、打开【输出方式】页面,再次点击【输出方式】

     

    3、设置【输出方式】为【Intent输出】,此时下方【广播动作】、【广播字符串数据标签】、【广播字节数据标签】为可点击编辑状态;

    与代码里的对应上即可,我这里是

    【广播动作】:android.intent.ACTION_DECODE_DATA

    【广播字符串数据标签】:barcode_string

       

     

  • 相关阅读:
    C++中的多线程编程:高效的并发处理方式
    推荐 5 个不错的 React Native UI 库
    23届各大厂前端面经(下)
    rv1126-rv1109-NFS功能
    设计模式 --- 工厂模式
    微服务框架 SpringCloud微服务架构 12 DockerCompose 12.1 初识Compose
    【云原生之k8s】K8s 管理工具 kubectl 详解(一)
    c++学习--第二部分
    什么是网络变压器,它是干什么用的?作用/参数表/价格及型号体系有哪些?怎么测量网络变压器好坏
    操作系统【OS】死锁
  • 原文地址:https://blog.csdn.net/qq_58340302/article/details/133674254