小程序wx.navigateTo中的闭包

序 最近的开发任务中处理了这样一个情况: 打开小程序是从onLoad判断是否携带参数 判断用户是否登录 如果没有登录需要跳转登录并跳转回来 回来后继续使用(1)中携带的参数处理问题 听起来没有什么难点,我们只需要设置app.globleData就可以很轻松的完成需求。但是我思考问题的点在于登录环节:如果每次有类似的需求都要去改动登录页的代码,那会让登录页面的if条件越来越多,代码可读性也会持续下降。 于是我开始查找对登录页面修改最少的解决方案: 使用wx.router来完成需求,但是我不是专业写前端的,而是被拉来救急的,让我去看文档写代码是在太慢了。而且如果整个小程序都改用wx.router,这其中的修改成本也太高了。 使用app.globleData前面说了,也不太可取 最终我发现了wx.navigateTo中的success可以处理我的问题。 所以在这里将我的思路写下来做记录,也提供给有同样需求的人参考。 还是要用到app.globleData 是的,我的方式中还是要对app.globleData进行设置,但是约定了统一的格式,无论在哪个页面。 var pages = getCurrentPages() var curPage = pages[pages.length-1] app.globleData.navigateInfo = { url:"/"+curPage.route, success: function (e) { var page = getCurrentPages().pop() if (page == undefined || page == null) return; page.selectComponent("#coupon").runCoupon(); } } 在登录页面只需要判断app.globleData.navigateInfo这一个参数,并在完成登录操作后直接将navigateInfo对象交给wx.navigateTo方法执行就跳回了原来的页面。 这里面神奇的点在于可以直接执行组件中的某个方法

2023/11/02 · mangk

NFC基础知识与读写

序 最近的项目需求中,需要使用NFC芯片来保存一些类似于url的信息并通过iOS或Android手机能正常获取到相关信息,所以针对NFC相关技术与特点进行了学习和总结。我会把我看过教程链接也同步贴到文章中。因为手上只有M1卡,所以下面的主要内容也围绕M1卡来进行 什么是NFC 近场通信(英语:Near-field communication,NFC),又称近距离无线通信、近距离通信,是一套通信协议,让两个电子设备(其中一个通常是移动设备,例如智能手机)在相距几厘米之内进行通信。NFC,如同过去的电子票券智能卡一般,将允许移动支付取代或支持这类系统。NFC应用于社交网络,分享联系方式、照片、视频或文件。具备 NFC 功能的设备可以充当电子身份证和钥匙卡。NFC 提供了设置简便的低速连接,也可用于引导能力更强的无线连接。 近场通信技术由非接触式射频识别(RFID)演变而来,由飞利浦半导体(现恩智浦半导体)、诺基亚和索尼共同于2004年研制开发,其基础是RFID及互连技术。近场通信是一种短距高频的无线电技术,在13.56MHz频率运行于20厘米距离内。其传输速度有106 Kbit/秒、212 Kbit/秒或者424 Kbit/秒三种。目前近场通信已通过成为ISO/IEC IS 18092国际标准、EMCA-340标准与ETSI TS 102 190标准。NFC采用主动和被动两种读取模式。 每一个完整的NFC设备可以用三种模式工作: 卡模拟模式(Card emulation mode):这个模式其实就是相当于一张采用RFID技术的IC卡。可以替代现在大量的IC卡(包括信用卡)场合商场刷卡、IPASS、门禁管制、车票、门票等等。此种方式下,有一个极大的优点,那就是卡片通过非接触读卡器的RF域来供电,即便是寄主设备(如手机)没电也可以工作。NFC设备若要进行卡片模拟(Card Emulation)相关应用,则必须内置安全组件(Security Element, SE)之NFC芯片或通过软件实现主机卡模拟(Host Card Emulation,HCE)。 读卡器模式(Reader/Writer mode):作为非接触读卡器使用,比如从海报或者展览信息电子标签上读取相关信息。 点对点模式(P2P mode):这个模式和红外线差不多,可用于数据交换,只是传输距离较短,传输创建速度较快,传输速度也快些,功耗低(蓝牙也类似)。将两个具备NFC功能的设备链接,能实现数据点对点传输,如下载音乐、交换图片或者同步设备地址薄。因此通过NFC,多个设备如数位相机、PDA、计算机和手机之间都可以交换资料或者服务。 维基百科-近场通信 百度-NFC 各种NFC卡的区别 卡 功能描述 普通IC卡 0扇区不可以修改,其他扇区可反复擦写,我们使用的电梯卡、门禁卡等智能卡发卡商所使用的都是 M1 卡,可以理解为物业发的原卡。 UID 卡 普通复制卡,可以重复擦写所有扇区,主要应用在IC卡复制上,遇到带有防火墙的读卡器就会失效。 CUID 卡 可擦写防屏蔽卡,可以重复擦写所有扇区,UID卡复制无效的情况下使用,可以绕过防火墙。 FUID 卡 不可擦写防屏蔽卡,此卡的特点0扇区只能写入一次,写入一次变成 M1 卡,CUID 复制没用的情况下使用,可以绕过防火墙。 UFUID 卡 高级复制卡,我们就理解为是 UID 和 FUID 的合成卡,需要封卡操作,不封卡就是 UID 卡,封卡后就变为 M1 卡。 知乎-司小凯-UID卡、IC卡、ID卡、CUID 卡、FUID 卡、UFUID 卡 的区别 NFC标签类型 目前iOS系统并没有开放过多的NFC权限,所以这里讨论通过Android系统操作NFC标签,以下是Android系统操作NFC标签支持的标签技术类型 Class Description TagTechnology 这是所有标签技术类都必须实现的接口。 NfcA 提供对 NFC-A (ISO 14443-3A) 属性和 I/O 操作的访问权限。 NfcB 提供对 NFC-B (ISO 14443-3B) 属性和 I/O 操作的访问权限。 NfcF 提供对 NFC-F (JIS 6319-4) 属性和 I/O 操作的访问权限。 NfcV 提供对 NFC-V (ISO 15693) 属性和 I/O 操作的访问权限。 IsoDep 提供对 ISO-DEP (ISO 14443-4) 属性和 I/O 操作的访问权限。 Ndef 提供对 NDEF 格式的 NFC 标签上的 NDEF 数据和操作的访问权限。 NdefFormatable 为可设置为 NDEF 格式的标签提供格式化操作。 MifareClassic 提供对 MIFARE Classic 属性和 I/O 操作的访问权限(如果此 Android 设备支持 MIFARE)。 MifareUltralight 提供对 MIFARE Ultralight 属性和 I/O 操作的访问权限(如果此 Android 设备支持 MIFARE)。 Android开发文档-高级NFC概览...

2022/11/18 · mangk