一种web应用程序访问nfc智能卡的方法及中间件

文档序号:115347 发布日期:2021-10-19 浏览:36次 >En<

阅读说明:本技术 一种web应用程序访问nfc智能卡的方法及中间件 (Method and middleware for WEB application program to access NFC smart card ) 是由 桂靖 张新访 董逢华 于 2021-04-09 设计创作,主要内容包括:本发明涉及一种WEB应用程序访问NFC智能卡的方法及中间件,其特征在于,其包括:将NFC接口原生方法注入浏览器控件;所述浏览器控件收到访问NFC接口指令时调用对应的NFC接口原生方法;所述NFC接口原生方法包括适用于不同手机系统的NFC接口原生方法。以实现通过一套WEB端标准接口可以访问不同手机系统的NFC接口。(The invention relates to a method and middleware for WEB application program to access NFC intelligent card, which is characterized by comprising the following steps: injecting an NFC interface native method into a browser control; the browser control calls a corresponding NFC interface native method when receiving an NFC interface access instruction; the NFC interface native method comprises an NFC interface native method applicable to different mobile phone systems. The NFC interfaces of different mobile phone systems can be accessed through a set of WEB end standard interfaces.)

一种WEB应用程序访问NFC智能卡的方法及中间件

技术领域

本发明涉及通信技术领域,特别涉及一种WEB应用程序访问NFC智能卡的方法及中间件。

背景技术

随着NFC手机的普及,大部分安卓手机都可以通过NFC访问智能卡。苹果公司也在iOS13系统中开放了NFC接口,iPhone7以及iPhone7以上的机型都可以通过NFC读写智能卡。

目前,由于具有跨平台优点WEB应用程序的得到了广泛的应用,用户只需要有浏览器即可访问WEB应用程序。但现有的WEB端的标准JavaScript接口无法访问很多手机系统的原生接口,比如WEB开发者无法直接调用安卓和iOS原生接口,从而造成用WEB开发应用程序访问不同手机时具有局限性。

本发明旨在为解决上述技术问题,使一套WEB端的标准JavaScript接口能够访问不同手机系统的原生NFC接口。

发明内容

本发明实施例提供一种WEB应用程序访问NFC智能卡的方法及中间件,以实现通过一套WEB端标准接口可以访问不同手机系统的原生NFC接口。

一方面,提出了一种WEB应用程序访问NFC智能卡的方法,其特征在于,其包括:将NFC接口原生方法注入浏览器控件;所述浏览器控件收到访问NFC接口指令时调用对应的NFC接口原生方法;所述NFC接口原生方法包括适用于不同手机系统的NFC接口原生方法。

一些实施例中,所述NFC接口原生方法包括是否支持NFC、NFC开关状态、NFC贴卡状态回调、NFC打开通道、NFC通信以及NFC关闭通道的接口原生方法。

一些实施例中,所述将NFC接口原生方法注入浏览器控件,包括步骤:将NFC接口原生方法进行封装形成封装代码;将所述封装代码注入浏览器控件;所述封装代码用于调用对应的NFC接口原生方法。

一些实施例中,所述将NFC接口原生方法进行封装形成封装代码,包括步骤:将NFC接口原生方法的数据类型转换成JavaScript数据类型并以此形成封装代码。

一些实施例中,所述将所述封装代码注入浏览器控件,包括步骤:

在安卓系统下,调用addJavascriptInterface接口;在IOS系统下,调用addUserScript接口。

一些实施例中,所述收到访问NFC接口指令时调用对应的NFC接口原生方法,包括步骤:根据所述访问NFC接口指令找出对应的封装代码;通过调用所述封装代码调用对应的NFC接口原生方法。

一些实施例中,所述收到访问NFC接口指令时调用对应的NFC接口原生方法之后,包括步骤:以NFC接口原生方法调用手机的原生系统接口;获取原生系统接口的返回结果;将所述返回结果反馈给浏览器控件。

一些实施例中,所述将所述返回结果反馈给浏览器控件,包括步骤:

将所述返回结果的数据类型转换为JavaScript数据类型;将数据类型转换后的返回结果发送至浏览器控件。

另一方面,提供了一种WEB应用程序访问NFC智能卡的中间件,其特征在于,其用于:将NFC接口原生方法注入浏览器控件;所述浏览器控件收到访问NFC接口指令时调用对应的NFC接口原生方法;所述NFC接口原生方法包括适用于不同手机系统的NFC接口原生方法。

一些实施例中,所述封装模块用于:将NFC接口原生方法进行封装形成封装代码;将所述封装代码注入浏览器控件。

通过本实施例的方法,在不同的手机系统环境下,WEB开发者不用考虑手机系统的差异(不论是安卓、IOS还是其他手机系统),只需要一套JavaScript代码(接口对接程序)即可访问不同手机系统中的NFC接口,实现不同手机系统下的NFC智能卡读取,拓宽了WEB开发应用程序的访问功能。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的WEB应用程序访问NFC卡的流程示意图;

图2为本发明实施例提供的一种WEB应用程序访问NFC智能卡的中间件的通信过程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种WEB应用程序访问NFC智能卡的方法,以实现通过一套WEB端标准接口可以访问不同手机系统的NFC接口,该方法包括步骤:

S010:将NFC接口原生方法注入浏览器控件;

S020:收到访问NFC接口指令时调用对应的NFC接口原生方法。

其中,NFC接口原生方法包括适用于不同手机系统的NFC接口原生方法。

需要说明的是,NFC为一种短距离的高频无线通信技术(Near FieldCommunication,简称NFC);接口是一种约束形式,或者叫连接通路,它为不相关的类提供通用的处理服务。所述的NFC接口是指内置于手机端的NFC原生接口。所述的NFC接口原生方法是指用于调用NFC原生接口的协议,只需要遵循该协议即可调用NFC原生接口。不同手机系统包括安卓手机系统和苹果公司的IOS系统,IOS13系统开放了NFC接口,iPhone7以及iPhone7以上的机型都可以通过NFC接口读写智能卡。所述的访问NFC接口指令是用户通过WEB应用下达的访问NFC接口的指令,比如读取公交卡余额。用户可输入WEB应用的URL地址下达所述的访问NFC接口指令。

通过本实施例的方法,可在不同的手机系统环境下,WEB开发者不用考虑手机系统的差异(不论是安卓、IOS还是其他手机系统),只需要一套代码(接口对接程序)即可访问不同手机系统中的NFC接口,实现不同手机系统下的NFC智能卡读取,拓宽了WEB开发应用程序的访问功能。

一些实施例中,所述NFC接口原生方法包括是否支持NFC、NFC开关状态、NFC贴卡状态回调、NFC打开通道、NFC通信以及NFC关闭通道的接口原生方法,还可以是NFC卡片类型回调或者启动NFC扫描等其他的NFC接口原生方法。

一些实施例中,步骤S010还包括步骤:

S011:将NFC接口原生方法进行封装形成封装代码;

S012:将所述封装代码注入浏览器控件;

所述封装代码用于调用对应的NFC接口原生方法。

在一些实施例中,步骤S011还包括步骤:将NFC接口原生方法的数据类型转换成JavaScript数据类型并以此形成封装代码。

在一些实施例中,步骤S012还包括步骤:在安卓系统下,调用addJavascriptInterface接口;在IOS系统下,调用addUserScript接口。

具体地,在安卓系统下,可参考:

https://developer.android.google.cn/reference/android/webkit/WebView?hl=en,根据网页中所记载的方法调用addJavascriptInterface接口;在IOS系统下,可参考:

https://developer.apple.com/documentation/webkit/wkusercontentcontroller?language=occ,根据网页中所记载的方法调用addUserScript接口。

在一些实施例中,步骤S020包括步骤:

S021:根据所述访问NFC接口指令找出对应的封装代码;

S022:通过调用所述封装代码调用对应的NFC接口原生方法。

具体的,在步骤S022中,在安卓系统下,可参考:

https://developer.android.google.cn/reference/android/nfc/NfcManager?hl=en,根据网页提供的方法调用getDefaultAdapter方法。

在IOS系统下,可参考:

https://developer.apple.com/documentation/corenfc/nfcreadersession/3043845-readingavailable,根据网页提供的方法调用readingAvailable方法。

可以理解的是,文中提到的“调用”是指:当有类或程序调用该接口所描述的方法、属性、索引器或事件(即接口成员)时,编译器会通过接口找到对应的那个”接口功能类或结构”,然后执行里面的功能代码。

在一些实施例中,在步骤S020之后,还包括步骤:以NFC接口原生方法调用手机的原生系统接口;获取原生系统接口的返回结果;将所述返回结果反馈给浏览器控件。

在一些实施例中,将所述返回结果反馈给浏览器控件还包括步骤:将所述返回结果的数据类型转换为JavaScript数据类型;将数据类型转换后的返回结果发送至浏览器控件。

如图1所示,在一个具体的实施例中,WEB应用程序访问NFC卡的流程为:

步骤a:将NFC接口原生方法注入到浏览器控件中;

步骤b:浏览器控件接收用户下达的NFC接口访问指令;

步骤c:浏览器控件根据用户下达的NFC接口访问指令在已注入的NFC接口原生方法中找到与访问指令对应的原生方法;

步骤d:根据与访问指令对应的原生方法调用手机系统接口执行访问指令;

步骤e:手机系统接口将执行访问指令后的返回结果反馈至浏览器控件;

步骤f:用户通过浏览器获取返回结果。

需要说明的是,步骤a中所述的NFC接口原生方法包括适用于安卓系统、IOS系统以及其他手机系统的NFC接口,且上述NFC接口的具体内容还包括:手机是否支持NFC、NFC开关状态、NFC贴卡状态回调、NFC打开通道、NFC通信以及NFC关闭通道等。注入的方法可参考:在安卓系统下:

https://developer.android.google.cn/reference/android/webkit/WebView?hl=en,根据网页中所记载的方法调用addJavascriptInterface接口;

在IOS系统下:

https://developer.apple.com/documentation/webkit/wkusercontentcontroller?language=occ,根据网页中所记载的方法调用addUserScript接口。

步骤b中,用户输入WEB应用的URL地址下达NFC接口访问指令,该访问指令可以是读取公交卡余额。浏览器控件进行相应的WEB页面解析和渲染。

步骤c中,用户下达NFC接口访问指令后,浏览器控件接收到改访问指令即可通过封装代码在已注入的NFC接口原生方法中识别出与访问指令对应的原生方法。

步骤d中,根据原生方法调用不同手机系统接口时:

在安卓系统下,可参考:

https://developer.android.google.cn/reference/android/nfc/NfcManager?hl=en,根据网页提供的方法调用getDefaultAdapter方法。

在IOS系统下,可参考:

https://developer.apple.com/documentation/corenfc/nfcreadersession/3043845-readingavailable,根据网页提供的方法调用readingAvailable方法。

步骤e中,将执行访问指令后的返回结果反馈至浏览器控件前,还对返回结果的数据类型进行转换,使符合JavaScript数据类型。

需要说明的是,在步骤a之后,根据用户下达的不同的NFC访问指令,可以循环上述步骤b至f,以满足WEB应用程序访问NFC智能卡的不同需求。

本发明实施例还提供一种WEB应用程序访问NFC智能卡的中间件,其用于:将NFC接口原生方法注入浏览器控件;收到访问NFC接口指令时调用对应的NFC接口原生方法;所述NFC接口原生方法包括适用于不同手机系统的NFC接口原生方法。

在一些实施例中,所述的中间件包括:封装模块,其用于将NFC接口原生方法进行封装形成封装代码并将所述封装代码注入浏览器控件。

如图2所示,在一个具体的实施例中,WEB应用程序访问NFC智能卡的中间件内已经注入了适用于不同手机系统NFC接口原生方法,当WEB端收到用户下达的NFC接口访问指令后,所述中间件找到与所述访问指令对应的原生方法,再根据原生方法调用对应手机系统的系统接口实现系统执行,并将系统执行后的返回结果反馈至WEB端。

通过本实施例提供的中间件,可向WEB应用开发者提供一个统一的虚拟接口,WEB应用开发者不用考虑手机系统的差异(不论是安卓、IOS还是其他手机系统),只需要一套JavaScript代码(接口对接程序)即可访问不同手机系统中的NFC接口,实现不同手机系统下的NFC智能卡读取,拓宽了WEB开发应用程序的访问功能。

在本发明的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

需要说明的是,在本发明中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种虚拟机迁移系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!