记录nfc.listenNFCStatus多次刷卡后会重复调用接口

当你使用nfc.listenNFCStatus在UniApp中监听NFC(Near Field Communication)状态时,可能会出现多次刷卡后接口被重复调用的情况。这通常发生是因为在多次刷卡后,NFC状态变化多次触发了监听事件。要解决这个问题,你可以使用一些技巧和策略来确保接口只在需要的时候被调用一次。

以下是一些可能的解决方法:

1. 防止重复触发:

在事件处理程序中,可以设置一个标志来标记接口是否已经被调用。如果接口已经被调用,那么在下一次NFC状态变化时,你可以检查这个标志并避免重复调用接口。这可以通过布尔变量或其他方式来实现

let isNFCInterfaceCalled = false;nfc.listenNFCStatus({success: function(res) {if (!isNFCInterfaceCalled) {// 调用接口isNFCInterfaceCalled = true;}},fail: function(err) {console.log('NFC status listen failed: ' + JSON.stringify(err));}
});

2. 延时处理

在接口调用后,可以添加一个延时,以确保在下一个NFC状态变化事件之前不会再次调用接口。这可以通过setTimeout函数来实现。

let isNFCInterfaceCalled = false;nfc.listenNFCStatus({success: function(res) {if (!isNFCInterfaceCalled) {// 调用接口isNFCInterfaceCalled = true;// 添加延时,避免重复调用setTimeout(function() {isNFCInterfaceCalled = false;}, 1000); // 设置延时时间,单位毫秒}},fail: function(err) {console.log('NFC status listen failed: ' + JSON.stringify(err));}
});

3. 使用计数器:

你可以使用一个计数器来跟踪调用接口的次数,并在达到一定的次数后停止监听NFC状态,以避免继续触发事件。

let callCount = 0;nfc.listenNFCStatus({success: function(res) {if (callCount < 1) {// 调用接口callCount++;if (callCount >= 5) {// 停止监听NFC状态nfc.stopListenNFCStatus();}}},fail: function(err) {console.log('NFC status listen failed: ' + JSON.stringify(err));}
});

根据你的具体需求和应用场景,你可以选择其中一种或多种方法来解决重复调用接口的问题。确保你的代码适用于你的UniApp版本和NFC设备。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/112993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx负载均衡反向代理动静分离

文章目录 nginx负载均衡&反向代理&动静分离环境说明部署动静分离1.主机lnmp部署一个动态页面&#xff0c;在此以discuz论坛系统为例2.主机n1部署两个静态页面访问动、静态页面 配置负载均衡配置反向代理访问测试 nginx负载均衡&反向代理&动静分离 环境 主机名…

链块串的实现(无功能函数实现)

String.h #pragma once #include <stdlib.h> #include <assert.h> #include <string.h> #include <errno.h> #include <iostream> using namespace std; #define SIZE 5 #define EFF_SIZE (SIZE -1)//插入的有效字符 typedef char elemType;typ…

【LINUX】1-移植NXP提供的源码

一、在Linux中添加自己的开发板 defconfig配置文件&#xff1a;一个就是imx6ull_alientek_emmc_defconfig默认配置文件 # 复制一份NXP 官方的SDK cd arch/arm/configs cp imx_v7_mfg_defconfig imx_alientek_emmc_defconfig 设备树&#xff1a;imx6ull-alientek-emmc.d…

【Arduino32】PWM控制直流电机速度

硬件准备 震动传感器&#xff1a;1个 红黄绿LED灯&#xff1a;各一个 旋钮电位器&#xff1a;1个 直流电机&#xff1a;1个 1K电阻&#xff1a;1个 220欧电阻&#xff1a;3个 杜邦线&#xff1a;若干 硬件连线 软件程序 const int analogInPin A0;//PWM输入引脚 const…

C/C++基础

C 二进制 问题&#xff1a;二进制怎么表示整数、小数、正数、负数&#xff0c;如何存储&#xff1f;加减乘除怎么运算&#xff08;见文章《计算机加减乘除本质》&#xff09;&#xff1f; 变量 c定义一个变量的时候&#xff0c;需要事先定义变量大小和变量类型。 //有符号…

vue通知(滚动)

1. li宽度不顾定 <template><div id"app"><div id"box" mouseover"clearLeft" mouseleave"setLeft"><ul :style"{ transform: translateX( left px) }" ref"cmdlist"><li v-for&qu…

前后端小项目链接

1.vue的创建 vue的项目创建 1.1 vue create vue_name 1.2 Babel Router(路由) CSS Pre-processors 路由可通过&#xff1a;npm i vue-router3.5.2 -S 下载 1.3less 1.4 In dedicated config files 1.5 启动命令&#xff1a;npm run serve 端口号在vue.config。js中配置 devS…

454. 四数相加 II

题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#xff1a;nums…

SpringCloud链路追踪——Spring Cloud Sleuth 和 Zipkin 介绍 Windows 下使用初步

前言 在微服务中&#xff0c;随着服务越来越多&#xff0c;对调用链的分析越来越复杂。如何能够分析调用链&#xff0c;定位微服务中的调用瓶颈&#xff0c;并对其进行解决。 本篇博客介绍springCloud中用到的链路追踪的组件&#xff0c;Spring Cloud Sleuth和Zipkin&#xf…

使用 PyAudio、语音识别、pyttsx3 和 SerpApi 构建简单的基于 CLI 的语音助手

德米特里祖布☀️ 一、介绍 正如您从标题中看到的&#xff0c;这是一个演示项目&#xff0c;显示了一个非常基本的语音助手脚本&#xff0c;可以根据 Google 搜索结果在终端中回答您的问题。 您可以在 GitHub 存储库中找到完整代码&#xff1a;dimitryzub/serpapi-demo-project…

Git的安装

前置 知道自己电脑上跑的是什么系统 查看电脑位数 省事的一种办法 Windows 在cmd中输入如下命令 wmic os get osarchitecture看命令结果即可 省事的一种办法 Linux 直接在终端中输入如下命令 uname -m若结果是x86_64就是64位的&#xff0c;反之32位 图形化的办法 Wind…

在Mac上安装和配置Node.js

在Mac上安装和配置Node.js是一项相对简单但重要的任务。Node.js是一个开源的、跨平台的JavaScript运行时环境&#xff0c;用于构建高效、可扩展的网络应用程序。下面将详细介绍如何在Mac上安装和配置Node.js。 准备工作 在安装配置Node.js之前&#xff0c;你需要确保你的Mac已…

开箱即用的Appimage是什么以及如何建立快捷方式

1 引言 在使用Linux系统过程中&#xff0c;初学者会遇到无穷多的问题&#xff0c;包括软件的安装问题。 ubuntu的deb,centos的rpm, 当然以及需要解压的tar.gz等等。有一种开箱即用的软件安装类型&#xff0c;格式为Appimage。 AppImage 的官方网站是 AppImage | Linux apps tha…

文件打包下载excel导出和word导出

0.文件下载接口 请求 GET /pm/prj/menu/whsj/download/{affixId} 文件affixId多个id以逗号隔开。多个文件会以打包得形式。 1.Excel导出 1.0接口 POST 127.0.0.1:8400/pm/io/exportExcel/year-plan-table-workflow/report 参数 [{"org":"011","re…

docker更新容器映射端口

一个容器已经暴露了一个端口被外界使用&#xff0c;但是这个端口被公司不允许使用&#xff0c;需要修改为其他的端口&#xff0c;怎么办&#xff1f; 1、删除原容器&#xff0c;重启新容器 删除已启动容器&#xff0c;从镜像重启新容器。2、修改原容器配置文件 3、生成镜像&…

Selenium定向爬取PubMed生物医学摘要信息

本文主要是自己的在线代码笔记。在生物医学本体Ontology构建过程中,我使用Selenium定向爬取生物医学PubMed数据库的内容。 PubMed是一个免费的搜寻引擎,提供生物医学方面的论文搜寻以及摘要。它的数据库来源为MEDLINE(生物医学数据库),其核心主题为医学,但亦包括…

java8 Optional理解及示例

大量判空的代码 实际中&#xff0c;对象不判空会导致空指针异常。 为了规避为指针&#xff0c;不得不写出这种非常冗长又丑陋的空指针判断。 public void tooMuchNull(Worker worker) {if (worker ! null) {Address addressworker.getAddress();if (address ! null) {String…

react-router-dom v6版本实现Tabs路由缓存切换

目录 文章目录 概要 效果 完整代码 概要 摆了半年摊&#xff0c;好久没写代码了&#xff0c;今天有人问我怎么实现React-Router-dom类似标签页缓存。后面看了一下router的官网。很久以前用的是react-router v5那个比较容易实现。v6变化挺大&#xff0c;但了解react的机制和rea…

Android一些新的技术栈,你都会哪些?

Jetpack Compose&#xff1a; Jetpack Compose是一种全新的声明式UI框架&#xff0c;用于构建Android应用的用户界面。它使UI开发更加简单和直观&#xff0c;通过使用Kotlin语言来创建交互式和动态的UI组件。 Kotlin Multiplatform&#xff1a; Kotlin Multiplatform允许开发者…

uniapp检测新版本

一、代码 在app.vue中写入 Update() {const updateManager uni.getUpdateManager();console.log(版本,updateManager,uni.getSystemInfoSync());updateManager.onCheckForUpdate(function(res) {// 请求完新版本信息的回调console.log(版本更新, res);});updateManager.onUpd…