CN111367635A - 宿主平台层中的应用接口实现方法、装置、设备和介质 - Google Patents

宿主平台层中的应用接口实现方法、装置、设备和介质 Download PDF

Info

Publication number
CN111367635A
CN111367635A CN202010130237.7A CN202010130237A CN111367635A CN 111367635 A CN111367635 A CN 111367635A CN 202010130237 A CN202010130237 A CN 202010130237A CN 111367635 A CN111367635 A CN 111367635A
Authority
CN
China
Prior art keywords
interface
platform layer
processor
host platform
calling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010130237.7A
Other languages
English (en)
Other versions
CN111367635B (zh
Inventor
董睿
孙微
李佳
陈都
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010130237.7A priority Critical patent/CN111367635B/zh
Publication of CN111367635A publication Critical patent/CN111367635A/zh
Priority to EP20864288.4A priority patent/EP3901772A4/en
Priority to PCT/CN2020/101984 priority patent/WO2021169150A1/zh
Priority to KR1020217009337A priority patent/KR102600321B1/ko
Priority to JP2021517040A priority patent/JP7213337B2/ja
Priority to US17/280,113 priority patent/US11698823B2/en
Application granted granted Critical
Publication of CN111367635B publication Critical patent/CN111367635B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Telephone Function (AREA)

Abstract

本申请实施例公开一种宿主平台层中的应用接口实现方法、装置、设备和存储介质,涉及计算机技术领域。具体实现方案为:宿主平台层获取端能力接口的描述数据;根据描述数据解析获取端能力接口的通信方式;根据通信方式配置对应的处理器和/或概念映射关系,以封装形成端能力接口的平台层接口,其中,平台层接口用于在小程序通过宿主平台层调用端能力接口的过程中,对通信交互的数据进行处理。使得宿主平台层根据端能力接口的描述数据自动生成平台层接口,避免了由于终端硬件、操作系统版本等差异带来的大量且频繁地宿主平台层接口代码维护,降低了宿主平台层接口的人工维护成本。

Description

宿主平台层中的应用接口实现方法、装置、设备和介质
技术领域
本申请实施例涉及计算机技术领域,具体涉及计算机小程序技术。
背景技术
小程序是一种NA(Native,原生程序)和WEB融合的技术形态。小程序一般是以宿主程序为平台来运行的,宿主程序通常为一般的APP软件,运行于终端的操作系统环境中。
宿主程序一般通过JavaScript来实现的,又可称为JS层,即宿主平台层,在小程序运行过程中,需要通过JS层调用所在终端的软硬件能力,又称为端能力。终端的端能力是通过原生程序(Native程序)实现的。JS平台将调用NA端能力的API(应用程序接口)暴露给小程序,供小程序运行时调用端能力。
但是,现有技术存在的问题在于,在小程序通过JS层调用NA端能力时,会涉及到JS层与NA端能力的API之间的通信。而API的通信方式会由于终端硬件、操作系统版本等变化而随之变化。这就导致JS层需要大量、且频繁地进行各种API的代码维护,以保证小程序能正确调用端能力。
发明内容
本申请实施例公开一种宿主平台层中的应用接口实现方法、装置、设备和介质,以优化宿主平台层中的接口维护方法,降低维护成本。
第一方面,本申请实施例提供了一种宿主平台层中的应用接口实现方法,由宿主平台层执行,包括:
获取端能力接口的描述数据;
根据所述描述数据解析获取所述端能力接口的通信方式;
根据所述通信方式配置对应的处理器和/或概念映射关系,以封装形成所述端能力接口的平台层接口,其中,所述平台层接口用于在小程序通过宿主平台层调用所述端能力接口的过程中,对通信交互的数据进行处理。
上述申请中的一个实施例具有如下优点或有益效果:宿主平台层通过解析NA层提供的端能力接口的描述数据,可获取端能力接口的通信方式;根据通信方式来配置处理器和/或概念映射关系,可自动生成端能力接口的平台层接口。从而避免了由于终端硬件、操作系统版本等差异带来的对平台层接口大量且频繁地代码维护,降低了平台层接口的人工维护成本。同时,NA层只需关注描述数据的生成,宿主平台层只需根据描述数据封装平台层接口,使NA层和宿主平台层分工明确,避免了功能界限模糊。此外,可在一定程度上约束NA层生成统一规范的描述数据,避免NA层管理混乱。
可选的,根据所述通信方式配置对应的概念映射关系包括:
如果当前宿主平台层的名称存在于所述通信方式声明的宿主场景范围内,则建立所述端能力接口的名称与宿主场景名称之间的映射关系,并确定所述端能力接口对应于当前宿主平台层的接口参数。
上述申请中的一个实施例具有如下优点或有益效果:有利于实现在宿主平台层的名称存在于通信方式声明的宿主场景范围的情况下,灵活配置端能力接口与宿主平台层的接口之间名称和参数的映射关系,从而适应不同宿主环境下的概念映射关系的配置。
可选的,所述处理器的种类包括下述至少一种:参数类型校验处理器、参数序列化处理器、返回值反序列化处理器、设定规则编码器、设定规则解码器、参数计算器、过滤器、解析器、参数拼接器、回调函数处理器以及调用方式处理器。
上述申请中的一个实施例具有如下优点或有益效果:宿主平台层通过定义不同种类的处理器,有利于实现对小程序的不同调用请求、端能力接口反馈的不同调用结果进行的相应处理,还有利于实现对处理后的调用结果进行的不同方式的回调。
可选的,所述处理器所涉及的调用阶段包括下述至少一项:调用前处理、本地回调函数处理、远程回调函数处理以及开发方回调函数处理。
上述申请中的一个实施例具有如下优点或有益效果:在调用端能力接口前的阶段、回调本地/远程端能力接口反馈的调用结果的阶段,以及向小程序反馈调用结果的阶段,宿主平台层通过处理器可分别实现对调用请求和调用结果的处理,以及对处理后的调用结果进行的不同方式的回调。
可选的,根据所述通信方式配置对应的概念映射关系包括:
根据所述通信方式中声明的端能力接口名称、传入参数和传出参数,建立与所述平台层接口的名称、传入参数和传出参数之间的映射关系。
上述申请中的一个实施例具有如下优点或有益效果:宿主平台层通过建立端能力接口名称与平台层接口的名称、端能力接口的传入参数和平台层接口的传入参数,以及端能力接口的传出参数和平台层接口的传出参数之间的映射关系,实现了端能力接口与平台层接口间名称和参数的灵活映射。
可选的,根据所述通信方式配置对应的概念映射关系包括:
根据所述通信方式中声明的端能力的通信桥或通信函数,建立与所述平台层接口的通信调用函数之间的关系。
上述申请中的一个实施例具有如下优点或有益效果:宿主平台层通过建立端能力的通信桥或通信函数与平台层接口的通信调用函数的关系,实现了端能力接口与宿主平台层之间的通信。
可选的,根据所述通信方式配置对应的概念映射关系包括:
根据所述通信方式声明的处理器名称,建立与所述宿主平台层提供的处理器名称之间的映射关系。
上述申请中的一个实施例具有如下优点或有益效果:宿主平台层通过建立声明的处理器名称与宿主平台层提供的至少一个处理器名称之间的映射关系,进而可根据至少一个处理器名称查找相应的处理器,有利于宿主平台层根据声明的处理器名称灵活组合系列处理器。
可选的,根据所述通信方式配置对应的处理器包括:
根据所述通信方式中声明的处理器功能,在预定义处理器库中查询对应的通用处理器;
根据所述通信方式中声明的处理器功能,对所述通用处理器进行变更,以形成配置的扩展处理器。
上述申请中的一个实施例具有如下优点或有益效果:宿主平台层通过声明的处理器功能进行通用处理器的查找和变更,有利于根据查找和变更的处理器对调用请求和调用结果的处理,以及对处理后的调用结果进行的不同方式的回调。
可选的,获取端能力接口的描述数据包括:
获取集成有多个端能力接口描述数据的描述文件,从中解析获取描述数据。
上述申请中的一个实施例具有如下优点或有益效果:NA层将多个端口能力的描述数据集成描述文件,可使宿主平台层批量获取多个端能力接口的描述数据,有利于同时自动化生成多个平台层接口。
可选的,获取端能力接口的描述数据包括:
接收主动上报的端能力接口的描述数据;或
在小程序首次运行前或过程中,请求更新所述端能力接口的描述数据。
上述申请中的一个实施例具有如下优点或有益效果:NA层可主动或根据请求被动向宿主平台层上报端能力接口的描述数据,从而在NA层与宿主平台层通信方式变更时,宿主平台层无需修改平台层接口代码,仅根据更新后的描述数据重新自动生成平台层接口即可,有利于平台层接口自动适应通信方式的变更。
第二方面,本申请实施例提供了一种基于宿主平台的小程序运行方法,由宿主平台层执行,包括:
获取在宿主平台层中运行的小程序对平台层接口的调用请求,其中,所述平台层接口由权利要求1-10任一所述的宿主平台层中的接口实现方法封装形成;
根据所述平台层接口的处理器和/或概念映射关系,对所述调用请求进行处理;
根据处理后的调用请求调用所述平台层接口对应的端能力接口;
获取所述端能力接口反馈的调用结果;
根据所述平台层接口的处理器和/或概念映射关系,对所述调用结果进行处理,并反馈给所述小程序。
第三方面,本申请实施例提供了一种宿主平台层中的应用接口实现装置,集成于宿主平台层,包括:
描述数据获取模块,用于获取端能力接口的描述数据;
通信方式解析模块,用于根据所述描述数据解析获取所述端能力接口的通信方式;
平台层接口生成模块,用于根据所述通信方式配置对应的处理器和/或概念映射关系,以封装形成所述端能力接口的平台层接口,其中,所述平台层接口用于在小程序通过宿主平台层调用所述端能力接口的过程中,对通信交互的数据进行处理。
第四方面,本申请实施例提供了一种基于宿主平台的小程序运行装置,集成于宿主平台层,包括:
调用请求获取模块,用于获取在宿主平台层中运行的小程序对平台层接口的调用请求,其中,所述平台层接口由本申请任意实施例所述的宿主平台层中的应用接口实现方法封装形成;
调用请求处理模块,用于根据所述平台层接口的处理器和/或概念映射关系,对所述调用请求进行处理;
端能力接口调用模块,用于根据处理后的调用请求调用所述平台层接口对应的端能力接口;
调用结果获取模块,用于获取所述端能力接口反馈的调用结果;
调用结果反馈模块,用于根据所述平台层接口的处理器和/或概念映射关系,对所述调用结果进行处理,并反馈给所述小程序。
第五方面,本申请实施例提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任意实施例所述的宿主平台层中的应用接口实现方法或基于宿主平台的小程序运行方法。
第六方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请任意实施例所述的宿主平台层中的应用接口实现方法或基于宿主平台的小程序运行方法。
上述申请中的一个实施例具有如下优点或有益效果:宿主平台层通过解析NA层提供的端能力接口的描述数据,可获取端能力接口的通信方式;根据通信方式来配置处理器和/或概念映射关系,可自动生成端能力接口的平台层接口。从而避免了由于终端硬件、操作系统版本等差异带来的对平台层接口大量且频繁地代码维护,降低了平台层接口的人工维护成本。同时,NA层只需关注描述数据的生成,宿主平台层只需根据描述数据封装平台层接口,使NA层和宿主平台层分工明确,避免了功能界限模糊。此外,可在一定程度上约束NA层生成统一规范的描述数据,避免NA层管理混乱。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的一种宿主平台层中的应用接口实现方法的流程图;
图2是根据本申请第二实施例的一种宿主平台层中的应用接口实现方法的流程图;
图3a是根据本申请第三实施例的一种基于宿主平台的小程序运行方法的流程图;
图3b是根据本申请第三实施例的一种基于宿主平台的小程序运行方法的框架图;
图4是根据本申请第四实施例的一种宿主平台层中的应用接口实现装置的结构示意图;
图5是根据本申请第五实施例的一种基于宿主平台的小程序运行装置的结构示意图;
图6是用来实现本申请实施例的宿主平台层中的应用接口实现方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
第一实施例
图1是根据本申请第一实施例的一种宿主平台层中的应用接口实现方法的流程图,本实施例可适用于宿主平台层生成平台层接口,以用于小程序通过调用平台层接口实现调用端能力接口的情况,该方法可由宿主平台层中的应用接口实现装置来执行,该装置采用软件和/或硬件的方式实现,优选是配置于电子设备中,例如智能手机、智能手表、平板电脑和笔记本电脑等电子设备中。如图1所示,该方法由宿主平台层执行,具体包括如下:
S110、获取端能力接口的描述数据。
在本申请具体实施例中,端能力的应用程序接口可简称为端能力接口。NA层可预先生成端能力接口的描述数据,并将该描述数据上报至宿主平台层。端能力接口的描述数据用于描述通过该端能力接口调用端能力过程中的通信方式。通信方式的描述可包括端能力接口名称Name、传入参数和传出参数及其数组类型Args、通信桥或通信函数Method和处理器名称Invoke中的至少一个。
由于宿主平台层的多样性,端能力接口被不同宿主平台层调用时其名称可能有所差异,Name字段可用于声明端能力接口在不同宿主场景下被调用时的名称。示例性的,端能力接口1在被安装于A应用软件中的小程序调用(即宿主平台层为A)时,接口名称可以为A.XX,在被安装于B应用软件中的小程序调用时,接口名称可以为B.XX。终端厂商可与各软件应用开发商预先针对端能力接口在其软件应用中的名称达成共识,NA层可将协商好的接口名称添加至Name字段中,且NA层还可在Name中添加通用接口名称,以使未经协商的宿主平台层实现对端能力接口的调用。
Args字段可用于声明端能力接口的传入参数和传出参数,以及传入参数和传出参数的数组类型。Method字段可用于声明调用端能力接口时具体调用的通信桥或通信函数来实现通信。
由于小程序调用请求中携带的参数和其需求的回调参数,与端能力接口的传入参数和传出参数间存在一定差异,需要在宿主平台层中对调用请求或传出参数进行一些处理操作,以实现端能力接口的成功调用。示例性的,小程序通过宿主平台层调用某端能力,其传入宿主平台层的参数为有自然语义的字符串,但是端能力接口无法识别字符串格式,则需要把传入的字符串进行一系列处理,例如参数类型的转换(例如将字符串转化为数字)和序列化(例如将几个数字变成数组)等。这种对小程序输入的参数进行特定处理的操作,可通过宿主平台层的系列处理器完成。
而Invoke字段即可用于声明调用端能力接口过程中所需的处理器名称,该处理器名称可在宿主平台层映射为至少一个处理器名称,且至少一个处理器名称对应的处理器可用于对传入参数和传出参数进行处理,还可用于对处理后的传出参数进行的不同方式的回调。示例性的,当invoke字段为method.json字符串时,宿主平台层会将该字符串映射成系列处理器名称[‘arg check’,‘decode’,‘…’],其中‘arg check’为参数类型校验处理器的名称,‘decode’为解码器的名称。
S120、根据描述数据解析获取端能力接口的通信方式。
在本申请具体实施例中,宿主平台层将接收的描述数据进行解析,可获得端能力接口的通信方式。且通信方式具体可以是端能力接口名称Name、传入参数和传出参数及其数组类型Args、通信桥或通信函数Method和处理器名称Invoke中的至少一个。
S130、根据通信方式配置对应的处理器和/或概念映射关系,以封装形成端能力接口的平台层接口。
在本申请具体实施例中,宿主平台层可根据通信方式中的Name、Args、Method和Invoke中的至少一个字段,来配置接口名称、传入参数和传出参数及其数组类型、通信桥或通信函数和处理器名称的至少一个概念的映射关系,可根据Invoke字段映射得到的处理器名称来配置处理器。
具体的,在端能力接口名称与平台层接口的名称一致,其他概念也均无需映射,只需配置对应的处理器用于对调用请求或调用结果进行处理,或者对调用结果进行不同方式的回调,就可实现对端能力接口调用时,宿主平台层可只配置对应的处理器,以封装形成端能力接口的平台层接口。在无需对调用请求或调用结果进行处理,或者无需对调用结果进行特殊方式的回调,只需配置对应的概念映射关系,就可实现对端能力接口调用时,宿主平台层可只配置对应的概念映射关系,以封装形成端能力接口的平台层接口。在既需要配置对应的处理器用于对调用请求或调用结果进行处理,或者对调用结果进行不同方式的回调,又需配置对应的概念映射关系,才可实现对端能力接口调用时,宿主平台层配置对应的处理器和概念映射关系,以封装形成端能力接口的平台层接口。宿主平台层生成的平台层接口,可用于在小程序通过宿主平台层调用端能力接口的过程中,对通信交互的数据进行处理。
本实施例中,处理器的种类包括下述至少一种:参数类型校验处理器、参数序列化处理器、返回值反序列化处理器、设定规则编码器、设定规则解码器、参数计算器、过滤器、解析器、参数拼接器、回调函数处理器以及调用方式处理器。
通常,参数类型校验处理器、参数序列化处理器、设定规则编码器和参数计算器可用于对调用请求中携带的参数进行处理;返回值反序列化处理器和设定规则解码器可用于对端能力接口反馈的调用结果进行处理;过滤器filter、解析器parser和参数拼接器可对调用请求和调用结果进行处理;回调函数处理器可实现调用结果回调,且回调函数例如为本地回调、远程回调函数和开发者回调函数;调用方式处理器可实现不同方式的调用操作,且调用方式例如prompt方式、location.href方式或iframe方式。上述处理器可根据端能力接口的实际调用场景,用于对调用请求和/或调用结果进行处理,而并不只限于上述应用阶段。宿主平台层通过定义不同种类的处理器,有利于实现对小程序的不同调用请求、端能力接口反馈的不同调用结果进行的相应处理,还有利于实现对处理后的调用结果进行的不同方式的回调。
本实施例中,处理器所涉及的调用阶段包括下述至少一项:调用前处理、本地回调函数处理、远程回调函数处理以及开发方回调函数处理。
具体的,在调用端能力接口前的调用阶段,通过处理器可实现对调用请求的处理;在本地回调函数处理、远程回调函数处理以及开发方回调函数处理的回调阶段,通过处理器可实现对调用结果的处理,以及对处理后的调用结果进行的不同方式的回调。
进一步的,本地回调函数可以指由宿主平台层挂载、由NA层执行的回调函数,可对NA层处理后的结果回调至宿主平台层;远程回调函数可以指NA层有一些异步操作(例如调用远程端能力接口)的时候,由宿主平台层提供、由NA层执行的回调函数,可对NA层处理后结果回调至宿主平台层;开发者回调函数,可以指由开发者提供的、由JS层执行的回调函数,可对NA层返回的结果处理为小程序需求的结果后回调至给开发者。在调用端能力接口前的阶段、回调本地/远程端能力接口反馈的调用结果的阶段,以及向小程序反馈调用结果的阶段,宿主平台层通过处理器可分别实现对调用请求和调用结果的处理,以及对处理后的调用结果进行的不同方式的回调。
本实施例中,获取端能力接口的描述数据可包括:获取集成有多个端能力接口描述数据的描述文件,从中解析获取描述数据。
具体的,NA层可针对每个端能力接口都生成一份描述数据,并将多个端能力接口描述数据集成描述文件(例如JSON对象)。宿主平台层批量获取多个端能力接口的描述数据,有利于同时自动化生成多个平台层接口。
本实施例中,获取端能力接口的描述数据可包括:接收主动上报的端能力接口的描述数据;或在小程序首次运行前或过程中,请求更新所述端能力接口的描述数据。
具体的,在进行终端硬件、操作系统版本或宿主平台版本等进行变更时,NA层可主动向宿主平台层上报端能力接口的描述数据。或者,在小程序首次运行前或过程中,可通过宿主平台层向NA层发起描述数据请求,NA层可根据请求被动向宿主平台层上报端能力接口的描述数据。从而在NA层与宿主平台层通信方式变更时,宿主平台层无需修改平台层接口代码,仅根据更新后的描述数据重新自动生成平台层接口即可,有利于平台层接口自动适应通信方式的变更。
本实施例的技术方案,宿主平台层通过解析NA层提供的端能力接口的描述数据,可获取端能力接口的通信方式;根据通信方式来配置处理器和/或概念映射关系,可自动生成端能力接口的平台层接口。从而避免了由于终端硬件、操作系统版本等差异带来的对平台层接口大量且频繁地代码维护,降低了平台层接口的人工维护成本。同时,NA层只需关注描述数据的生成,宿主平台层只需根据描述数据封装平台层接口,使NA层和宿主平台层分工明确,避免了功能界限模糊。且由于NA层需要生成描述数据,可在一定程度上约束NA层生成统一规范的描述数据,例如对端能力接口的名称进行了统一规范,避免NA层管理混乱。此外,宿主平台层根据描述数据自动生成的平台层接口可以向前兼容,即自动生成的平台层接口可以与已有人工编码的平台层接口共存,提高用户体验。
第二实施例
图2是根据本申请第二实施例的一种宿主平台层中的应用接口实现方法的流程图,本实施例在上述实施例的基础上,进一步对宿主平台层配置根据通信方式配置对应的处理器和概念映射关系进行解释说明,能够实现端能力接口与平台层接口之间接口名称、传入参数和传出参数及其数组类型、通信桥或通信函数和处理器名称等概念映射关系的配置,以及实现根据处理器名称对处理器的配置。本实施例与上述实施例相同的技术细节将不再赘述。如图2所示,该方法由宿主平台层执行,具体包括如下:
S210、获取端能力接口的描述数据。
S220、根据描述数据解析获取端能力接口的通信方式。
S230、根据通信方式中声明的端能力接口名称、传入参数和传出参数,建立与平台层接口的名称、传入参数和传出参数之间的映射关系。
在本申请具体实施例中,存在端能力接口名称跟宿主平台层维护的平台层接口的名称不一样,但其实对应同一端能力接口的情况,此时宿主平台层可以把端能力接口名称与平台层接口的名称建立映射关系。例如,端能力接口的名称不容易直观反映端能力时,为让小程序开发者容易理解,宿主平台层可把该端能力接口的名称与一个容易理解的平台层接口的名称建立映射关系。当宿主平台层接收到调用平台层接口的请求时,可根据端能力接口名称与平台层接口的名称的映射关系调用相应的端能力接口。
同时,也存在端能力接口的传入参数和传出参数,与平台层接口接收的小程序调用请求中的参数和反馈至小程序的参数不一样的情况,且当传入参数和传出参数为数组形式时,还存在传入数组和传出数组的类型,与平台层接口接收的小程序调用请求中的数组类型和反馈至小程序的数组类型不一样的情况。此时,宿主平台层需经过一系列处理操作,将小程序调用请求中的参数及其数组类型转化为端能力接口的传入参数及其数组类型,将端能力接口的传出参数及其数组类型转化为反馈至小程序的参数及其数组类型。此时,宿主平台层可将端能力传入参数和传出参数与平台传入参数和传出参数之间的建立映射关系,以便于进行相应的数据处理。
宿主平台层通过建立端能力接口名称与平台层接口的名称、端能力接口的传入参数和平台层接口的传入参数,以及端能力接口的传出参数和平台层接口的传出参数之间的映射关系,实现了端能力接口与平台层接口间名称和参数的灵活映射。
S240、根据通信方式中声明的端能力的通信桥或通信函数,建立与平台层接口的通信调用函数之间的关系。
在本申请具体实施例中,JSBridge可实现Native代码与JS代码的通信,其实现流程例如可以为:设计NA与JS交互的全局桥对象;JS通过全局桥对象的通信函数(例如callHandler)来调用NA;NA对调用进行处理,并通过JSBridge调用H5的JS方法进行回调。因此,为实现端能力接口与宿主平台层之间的通信,宿主平台层可将端能力的通信桥或通信函数与平台层接口的通信调用函数的关系。
S250、根据通信方式声明的处理器名称,建立与宿主平台层提供的处理器名称之间的映射关系。
在本申请具体实施例中,通信方式声明的处理器名称Invoke字段为一字符串,该字符串并未写明具体某些处理器的名称,但可以与宿主平台层提供的具体的处理器名称建立映射关系。具体的,宿主平台层可预先定义各种系列处理器名称的数组,并将各数组与声明的处理器名称建立映射关系,以实现建立声明的处理器名称与宿主平台层提供的至少一个处理器名称之间的映射关系,有利于宿主平台层根据声明的处理器名称灵活组合系列处理器。进而宿主平台层可根据至少一个处理器名称查找相应的处理器,实现对调用请求和回调结果所需的一系列处理,以及对调用结果所需的回调方式。
S260、根据通信方式中声明的处理器功能,在预定义处理器库中查询对应的通用处理器;根据通信方式中声明的处理器功能,对通用处理器进行变更,以形成配置的扩展处理器,以封装形成端能力接口的平台层接口。
在本申请具体实施例中,声明的处理器功能可以认为是与处理器名称Invoke字段相对应的对调用请求和回调结果所需的一系列处理,以及对调用结果所需的回调方式。根据所需的一系列处理和回调方式,可以从预定义处理器库中查询对应的通用处理器,且当通用处理器不符合需求时,可以对现有处理器进行扩展变更,例如扩展特殊功能的处理器,或对现有处理器进行变更,来形成符合特异性需求的扩展处理器。宿主平台层通过声明的处理器功能进行通用处理器的查找和变更,有利于根据查找和变更的处理器对调用请求和调用结果的处理,以及对处理后的调用结果进行的不同方式的回调。
本实施例中,如果当前宿主平台层的名称存在于通信方式声明的宿主场景范围内,则建立端能力接口的名称与宿主场景名称之间的映射关系,并确定端能力接口对应于当前宿主平台层的接口参数。
具体的,若通信方式中已声明端能力接口在不同宿主场景下的名称时,可直接将该端能力接口的名称与当前宿主平台层对应的宿主场景名称建立映射关系。示例性的,端能力接口1通信方式声明的宿主场景范围为A应用软件和B应用软件,且被A应用软件中调用时接口名称为A.XX,被B应用软件调用时接口名称为B.XX。若当前宿主平台层的名称为A应用软件,则可建立端能力接口1与A.XX的映射关系。进一步的,当宿主平台层自定义有便于理解的平台接口名称时,还可建立宿主场景名称与平台接口名称的关系,例如宿主平台层可建立宿主场景名称A.XX与自定义的接口名称xx的映射关系。
具体的,确定端能力接口对应于当前宿主平台层的接口参数,可以认为等同于建立端能力接口的传入参数和传出参数与平台层接口的传入参数和传出参数之间的映射关系。在宿主平台层的名称存在于通信方式声明的宿主场景范围的情况下,实现了灵活配置端能力接口与宿主平台层的接口之间名称和参数的映射关系,从而适应不同宿主环境下的概念映射关系的配置。
本实施例的技术方案,宿主平台层通过建立端能力接口名称与平台层接口的名称、端能力接口的传入参数和平台层接口的传入参数,以及端能力接口的传出参数和平台层接口的传出参数之间的映射关系,实现了端能力接口与平台层接口间名称和参数的灵活映射;通过建立端能力的通信桥或通信函数与平台层接口的通信调用函数的关系,实现了端能力接口与宿主平台层之间的通信;通过建立声明的处理器名称与宿主平台层提供的至少一个处理器名称之间的映射关系,进而可根据至少一个处理器名称查找相应的处理器,有利于宿主平台层根据声明的处理器名称灵活组合系列处理器;通过声明的处理器功能进行通用处理器的查找和变更,有利于根据查找和变更的处理器对调用请求和调用结果的处理,以及对处理后的调用结果进行的不同方式的回调。
第三实施例
图3a是根据本申请第三实施例的一种基于宿主平台的小程序运行方法的流程图,本实施例可适用于小程序通过调用平台层接口实现调用端能力接口的情况,该方法可由基于宿主平台的小程序运行装置来执行,该装置采用软件和/或硬件的方式实现,优选是配置于电子设备中,例如智能手机、智能手表、平板电脑和笔记本电脑等电子设备中。如图3a所示,该方法由宿主平台层执行,具体包括如下:
S310、获取在宿主平台层中运行的小程序对平台层接口的调用请求。
在本申请具体实施例中,平台层接口可由宿主平台层预先根据本申请任意实施例的宿主平台层中的应用接口实现方法封装形成。且宿主平台层封装形成至少一个平台层接口之后,可以将其挂载到swan map中供在宿主平台层中运行的小程序调用。当小程序向宿主平台层发送平台层接口的调用请求时,宿主平台层可根据调用请求中携带的平台层接口对应的key,获取到swan map中的具体平台层接口。
S320、根据平台层接口的处理器和/或概念映射关系,对调用请求进行处理。
在本申请具体实施例中,宿主平台层通过通信工厂调用程序,可根据平台层接口与端能力接口间处理器和/或概念映射关系,使用系列处理器对调用请求中的参数进行处理。
S330、根据处理后的调用请求调用平台层接口对应的端能力接口。
在本申请具体实施例中,宿主平台层将处理后的调用请求传输给端能力接口,以实现对端能力接口的调用。
S340、获取端能力接口反馈的调用结果。
在本申请具体实施例中,NA层通过执行本地回调函数或远程回调函数处理,可将调用结果反馈至宿主平台层。
S350、根据平台层接口的处理器和/或概念映射关系,对调用结果进行处理,并反馈给小程序。
在本申请具体实施例中,宿主平台层可根据平台层接口与端能力接口间处理器和/或概念映射关系,使用系列处理器对调用结果进行处理,并可执行开发者回调函数,将处理后的调用结果反馈至小程序。
示例性的,图3b是根据本申请第三实施例的一种基于宿主平台的小程序运行方法的框架图。如图3b所示,JS层即为宿主平台层,小程序可寄宿于JS层,并可通过JS层调用NA端能力。
如图3b所示,小程序在调用JS层的平台层接口之前,NA层可预先针对每个端能力接口都生成一份描述数据,并将多个端能力接口描述数据集成描述文件(例如JSON对象),并将描述文件发送至JS层。图3b中虚线框部分为JS层接收到描述文件之后将其合并(merge)为映射图(swan map)的步骤,例如可以包括:获取并遍历描述文件中每个端能力接口的描述数据description;根据描述数据解析获取各端能力接口的通信方式,例如各端能力接口的名称Name、传入参数和传出参数及其数组类型Args、通信桥或通信函数Method和处理器名称Invoke中的至少一个;根据通信方式维护每个接口无法通用的特殊处理,即根据通信方式配置平台层接口和端能力接口间的概念映射关系;根据通信方式定义系统在不同NA环境下的处理器,即根据通信方式配置平台层接口和端能力接口间的处理器。
又参见图3b,当小程序向JS层发送调用请求swan.xxx()时,JS层可根据调用请求中携带的平台层接口对应的key,获取到swan map中的具体平台层接口;通过通信工厂invoke factory调用程序,根据平台层接口与端能力接口间处理器和/或概念映射关系,使用系列处理器对调用请求中的参数进行处理,实现invoke到NA层;NA层根据处理后的调用请求调用封装的端能力接口,并可通过执行本地/远程回调将处理结果回调至JS层;JS层将NA层返回的回调结果处理为小程序需求的结果后,执行开发者回调,以将结果回调至给小程序,从而实现了基于宿主平台的小程序运行方法。
本实施例的技术方案,宿主平台层获取小程序对平台层接口的调用请求,通过该平台层接口实现了对调用请求和端能力接口反馈的调用结果的处理,实现了小程序通过宿主平台层对端能力的调用。本实施例中平台层接口由本申请任意实施例的宿主平台层中的应用接口实现方法封装形成,避免了由于终端硬件、操作系统版本等差异带来的大量且频繁地宿主平台层接口代码维护,降低了接口维护成本。
第四实施例
图4是根据本申请第四实施例的一种宿主平台层中的应用接口实现装置的结构示意图,本实施例可适用于宿主平台层生成平台层接口,以用于小程序通过调用平台层接口实现调用端能力接口的情况,该装置可实现本申请任意实施例的宿主平台层中的应用接口实现方法。该装置400集成于宿主平台层,具体包括如下:
描述数据获取模块410,用于获取端能力接口的描述数据;
通信方式解析模块420,用于根据描述数据解析获取端能力接口的通信方式;
平台层接口生成模块430,用于根据通信方式配置对应的处理器和/或概念映射关系,以封装形成端能力接口的平台层接口,其中,平台层接口用于在小程序通过宿主平台层调用端能力接口的过程中,对通信交互的数据进行处理。
可选的,平台层接口生成模块,包括:
概念映射关系配置子模块,具体用于:
如果当前宿主平台层的名称存在于通信方式声明的宿主场景范围内,则建立端能力接口的名称与宿主场景名称之间的映射关系,并确定端能力接口对应于当前宿主平台层的接口参数。
可选的,处理器的种类包括下述至少一种:参数类型校验处理器、参数序列化处理器、返回值反序列化处理器、设定规则编码器、设定规则解码器、参数计算器、过滤器、解析器、参数拼接器、回调函数处理器以及调用方式处理器。
可选的,处理器所涉及的调用阶段包括下述至少一项:调用前处理、本地回调函数处理、远程回调函数处理以及开发方回调函数处理。
可选的,概念映射关系配置子模块,还具体用于:
根据通信方式中声明的端能力接口名称、传入参数和传出参数,建立与平台层接口的名称、传入参数和传出参数之间的映射关系。
可选的,概念映射关系配置子模块,还具体用于:
根据通信方式中声明的端能力的通信桥或通信函数,建立与平台层接口的通信调用函数之间的关系。
可选的,概念映射关系配置子模块,还具体用于:
根据通信方式声明的处理器名称,建立与宿主平台层提供的处理器名称之间的映射关系。
可选的,平台层接口生成模块,包括:
处理器配置子模块,具体用于:
根据通信方式中声明的处理器功能,在预定义处理器库中查询对应的通用处理器;根据通信方式中声明的处理器功能,对通用处理器进行变更,以形成配置的扩展处理器。
可选的,描述数据获取模块,具体用于:
获取集成有多个端能力接口描述数据的描述文件,从中解析获取描述数据。
可选的,描述数据获取模块,具体用于:
接收主动上报的端能力接口的描述数据;或在小程序首次运行前或过程中,请求更新端能力接口的描述数据。
本实施例的技术方案,通过各个功能模块之间的相互配合,实现了配置端能力接口与平台层接口之间接口名称、传入参数和传出参数及其数组类型、通信桥或通信函数和处理器名称等概念映射关系,以及实现根据处理器名称配置对应处理器的等功能。宿主平台层通过解析NA层提供的端能力接口的描述数据,可获取端能力接口的通信方式;根据通信方式来配置处理器和/或概念映射关系,可自动生成端能力接口的平台层接口。从而避免了由于终端硬件、操作系统版本等差异带来的对平台层接口大量且频繁地代码维护,降低了平台层接口的人工维护成本。同时,NA层只需关注描述数据的生成,宿主平台层只需根据描述数据封装平台层接口,使NA层和宿主平台层分工明确,避免了功能界限模糊。此外,可在一定程度上约束NA层生成统一规范的描述数据,避免NA层管理混乱。
第五实施例
图5是根据本申请第五实施例的一种基于宿主平台的小程序运行装置的结构示意图,本实施例可适用于小程序通过调用平台层接口实现调用端能力接口的情况,该装置可实现本申请任意实施例的基于宿主平台的小程序运行方法。该装置500集成于宿主平台层,具体包括如下:
调用请求获取模块510,用于获取在宿主平台层中运行的小程序对平台层接口的调用请求;
调用请求处理模块520,用于根据平台层接口的处理器和/或概念映射关系,对调用请求进行处理;
端能力接口调用模块530,用于根据处理后的调用请求调用平台层接口对应的端能力接口;
调用结果获取模块540,用于获取端能力接口反馈的调用结果;
调用结果反馈模块550,用于根据平台层接口的处理器和/或概念映射关系,对调用结果进行处理,并反馈给小程序。
本实施例的技术方案,通过各个功能模块之间的相互配合,实现了小程序调用端能力的功能。本申请实施例宿主平台层获取小程序对平台层接口的调用请求,通过该平台层接口实现了对调用请求和端能力接口反馈的调用结果的处理,实现了小程序通过宿主平台层对端能力的调用。本实施例中平台层接口由本申请任意实施例的宿主平台层中的应用接口实现方法封装形成,避免了由于终端硬件、操作系统版本等差异带来的大量且频繁地宿主平台层接口代码维护,降低了接口维护成本。
第六实施例
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的宿主平台层中的应用接口实现方法或基于宿主平台的小程序运行方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置,诸如,耦合至接口的显示设备,其上显示图形用户界面(Graphical User Interface,GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作,例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的宿主平台层中的应用接口实现方法或基于宿主平台的小程序运行方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的宿主平台层中的应用接口实现方法或基于宿主平台的小程序运行方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的宿主平台层中的应用接口实现方法对应的程序指令/模块,例如,附图4所示的描述数据获取模块410、通信方式解析模块420和平台层接口生成模块430;又如本申请实施例中的基于宿主平台的小程序运行方法对应的程序指令/模块,例如,附图5所示的调用请求获取模块510、调用请求处理模块520、端能力接口调用模块530、调用结果获取模块540和调用结果反馈模块550。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的宿主平台层中的应用接口实现方法或基于宿主平台的小程序运行方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据宿主平台层中的应用接口实现方法或基于宿主平台的小程序运行方法的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至宿主平台层中的应用接口实现方法或基于宿主平台的小程序运行方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
宿主平台层中的应用接口实现方法或基于宿主平台的小程序运行方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与宿主平台层中的应用接口实现方法或基于宿主平台的小程序运行方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置和触觉反馈装置等,其中,辅助照明装置例如发光二极管(Light Emitting Diode,LED);触觉反馈装置例如,振动电机等。该显示设备可以包括但不限于,液晶显示器(Liquid Crystal Display,LCD)、LED显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路(Application Specific Integrated Circuit,ASIC)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序,也称作程序、软件、软件应用、或者代码,包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置,例如,磁盘、光盘、存储器、可编程逻辑装置(Programmable Logic Device,PLD),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置,例如,阴极射线管(Cathode Ray Tube,CRT)或者LCD监视器;以及键盘和指向装置,例如,鼠标或者轨迹球,用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈、或者触觉反馈;并且可以用任何形式,包括声输入、语音输入或者、触觉输入,来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统,例如,数据服务器,或者实施在包括中间件部件的计算系统,例如,应用服务器、或者实施在包括前端部件的计算系统,例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互,或者实施在包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信,例如,通信网络,来将系统的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,宿主平台层通过解析NA层提供的端能力接口的描述数据,可获取端能力接口的通信方式;根据通信方式来配置处理器和/或概念映射关系,可自动生成端能力接口的平台层接口。从而避免了由于终端硬件、操作系统版本等差异带来的对平台层接口大量且频繁地代码维护,降低了平台层接口的人工维护成本。同时,NA层只需关注描述数据的生成,宿主平台层只需根据描述数据封装平台层接口,使NA层和宿主平台层分工明确,避免了功能界限模糊。此外,可在一定程度上约束NA层生成统一规范的描述数据,避免NA层管理混乱。
另外,有利于实现在宿主平台层的名称存在于通信方式声明的宿主场景范围的情况下,灵活配置端能力接口与宿主平台层的接口之间名称和参数的映射关系,从而适应不同宿主环境下的概念映射关系的配置。
另外,宿主平台层通过定义不同种类的处理器,有利于实现对小程序的不同调用请求、端能力接口反馈的不同调用结果进行的相应处理,还有利于实现对处理后的调用结果进行的不同方式的回调。
另外,在调用端能力接口前的阶段、回调本地/远程端能力接口反馈的调用结果的阶段,以及向小程序反馈调用结果的阶段,宿主平台层通过处理器可分别实现对调用请求和调用结果的处理,以及对处理后的调用结果进行的不同方式的回调。
另外,宿主平台层通过建立端能力接口名称与平台层接口的名称、端能力接口的传入参数和平台层接口的传入参数,以及端能力接口的传出参数和平台层接口的传出参数之间的映射关系,实现了端能力接口与平台层接口间名称和参数的灵活映射。
另外,宿主平台层通过建立端能力的通信桥或通信函数与平台层接口的通信调用函数的关系,实现了端能力接口与宿主平台层之间的通信。
另外,宿主平台层通过建立声明的处理器名称与宿主平台层提供的至少一个处理器名称之间的映射关系,进而可根据至少一个处理器名称查找相应的处理器,有利于宿主平台层根据声明的处理器名称灵活组合系列处理器。
另外,宿主平台层通过声明的处理器功能进行通用处理器的查找和变更,有利于根据查找和变更的处理器对调用请求和调用结果的处理,以及对处理后的调用结果进行的不同方式的回调。
另外,NA层将多个端口能力的描述数据集成描述文件,可使宿主平台层批量获取多个端能力接口的描述数据,有利于同时自动化生成多个平台层接口。
另外,NA层可主动或根据请求被动向宿主平台层上报端能力接口的描述数据,从而在NA层与宿主平台层通信方式变更时,宿主平台层无需修改平台层接口代码,仅根据更新后的描述数据重新自动生成平台层接口即可,有利于平台层接口自动适应通信方式的变更。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (15)

1.一种宿主平台层中的接口实现方法,其特征在于,由宿主平台层执行,包括:
获取端能力接口的描述数据;
根据所述描述数据解析获取所述端能力接口的通信方式;
根据所述通信方式配置对应的处理器和/或概念映射关系,以封装形成所述端能力接口的平台层接口,其中,所述平台层接口用于在小程序通过宿主平台层调用所述端能力接口的过程中,对通信交互的数据进行处理。
2.根据权利要求1所述的方法,其特征在于,根据所述通信方式配置对应的概念映射关系包括:
如果当前宿主平台层的名称存在于所述通信方式声明的宿主场景范围内,则建立所述端能力接口的名称与宿主场景名称之间的映射关系,并确定所述端能力接口对应于当前宿主平台层的接口参数。
3.根据权利要求1所述的方法,其特征在于,所述处理器的种类包括下述至少一种:参数类型校验处理器、参数序列化处理器、返回值反序列化处理器、设定规则编码器、设定规则解码器、参数计算器、过滤器、解析器、参数拼接器、回调函数处理器以及调用方式处理器。
4.根据权利要求1或3所述的方法,其特征在于,所述处理器所涉及的调用阶段包括下述至少一项:调用前处理、本地回调函数处理、远程回调函数处理以及开发方回调函数处理。
5.根据权利要求1所述的方法,其特征在于,根据所述通信方式配置对应的概念映射关系包括:
根据所述通信方式中声明的端能力接口名称、传入参数和传出参数,建立与所述平台层接口的名称、传入参数和传出参数之间的映射关系。
6.根据权利要求1所述的方法,其特征在于,根据所述通信方式配置对应的概念映射关系包括:
根据所述通信方式中声明的端能力的通信桥或通信函数,建立与所述平台层接口的通信调用函数之间的关系。
7.根据权利要求1所述的方法,其特征在于,根据所述通信方式配置对应的概念映射关系包括:
根据所述通信方式声明的处理器名称,建立与所述宿主平台层提供的处理器名称之间的映射关系。
8.根据权利要求1所述的方法,其特征在于,根据所述通信方式配置对应的处理器包括:
根据所述通信方式中声明的处理器功能,在预定义处理器库中查询对应的通用处理器;
根据所述通信方式中声明的处理器功能,对所述通用处理器进行变更,以形成配置的扩展处理器。
9.根据权利要求1所述的方法,其特征在于,获取端能力接口的描述数据包括:
获取集成有多个端能力接口描述数据的描述文件,从中解析获取描述数据。
10.根据权利要求1所述的方法,其特征在于,获取端能力接口的描述数据包括:
接收主动上报的端能力接口的描述数据;或
在小程序首次运行前或过程中,请求更新所述端能力接口的描述数据。
11.一种基于宿主平台的小程序运行方法,其特征在于,由宿主平台层执行,所述方法包括:
获取在宿主平台层中运行的小程序对平台层接口的调用请求,其中,所述平台层接口由权利要求1-10任一所述的宿主平台层中的接口实现方法封装形成;
根据所述平台层接口的处理器和/或概念映射关系,对所述调用请求进行处理;
根据处理后的调用请求调用所述平台层接口对应的端能力接口;
获取所述端能力接口反馈的调用结果;
根据所述平台层接口的处理器和/或概念映射关系,对所述调用结果进行处理,并反馈给所述小程序。
12.一种宿主平台层中的应用接口实现装置,其特征在于,集成于宿主平台层,包括:
描述数据获取模块,用于获取端能力接口的描述数据;
通信方式解析模块,用于根据所述描述数据解析获取所述端能力接口的通信方式;
平台层接口生成模块,用于根据所述通信方式配置对应的处理器和/或概念映射关系,以封装形成所述端能力接口的平台层接口,其中,所述平台层接口用于在小程序通过宿主平台层调用所述端能力接口的过程中,对通信交互的数据进行处理。
13.一种基于宿主平台的小程序运行装置,其特征在于,集成于宿主平台层,包括:
调用请求获取模块,用于获取在宿主平台层中运行的小程序对平台层接口的调用请求,其中,所述平台层接口由权利要求1-10任一所述的宿主平台层中的接口实现方法封装形成;
调用请求处理模块,用于根据所述平台层接口的处理器和/或概念映射关系,对所述调用请求进行处理;
端能力接口调用模块,用于根据处理后的调用请求调用所述平台层接口对应的端能力接口;
调用结果获取模块,用于获取所述端能力接口反馈的调用结果;
调用结果反馈模块,用于根据所述平台层接口的处理器和/或概念映射关系,对所述调用结果进行处理,并反馈给所述小程序。
14.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的宿主平台层中的应用接口实现方法,或执行权利要求11中所述的基于宿主平台的小程序运行方法。
15.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-10中任一项所述的宿主平台层中的应用接口实现方法,或执行权利要求11中所述的基于宿主平台的小程序运行方法。
CN202010130237.7A 2020-02-28 2020-02-28 宿主平台层中的应用接口实现方法、装置、设备和介质 Active CN111367635B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN202010130237.7A CN111367635B (zh) 2020-02-28 2020-02-28 宿主平台层中的应用接口实现方法、装置、设备和介质
EP20864288.4A EP3901772A4 (en) 2020-02-28 2020-07-15 METHOD AND APPARATUS FOR IMPLEMENTING APPLICATION INTERFACE IN A HOST, DEVICE AND MEDIUM PLATFORM LAYER
PCT/CN2020/101984 WO2021169150A1 (zh) 2020-02-28 2020-07-15 宿主平台层中的应用接口实现方法、装置、设备和介质
KR1020217009337A KR102600321B1 (ko) 2020-02-28 2020-07-15 호스트 플랫폼 계층에서의 애플리케이션 인터페이스 구현 방법, 장치, 설비 및 매체
JP2021517040A JP7213337B2 (ja) 2020-02-28 2020-07-15 上位プラットフォームレイヤ上のアプリケーションインタフェースの実現方法、装置、機器および媒体
US17/280,113 US11698823B2 (en) 2020-02-28 2020-07-15 Application interface implementation method in a host platform layer, device, and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010130237.7A CN111367635B (zh) 2020-02-28 2020-02-28 宿主平台层中的应用接口实现方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN111367635A true CN111367635A (zh) 2020-07-03
CN111367635B CN111367635B (zh) 2023-04-25

Family

ID=71211137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010130237.7A Active CN111367635B (zh) 2020-02-28 2020-02-28 宿主平台层中的应用接口实现方法、装置、设备和介质

Country Status (2)

Country Link
CN (1) CN111367635B (zh)
WO (1) WO2021169150A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949272A (zh) * 2020-07-30 2020-11-17 百度在线网络技术(北京)有限公司 寄宿应用的编译优化方法、装置、电子设备及可读存储介质
CN112331235A (zh) * 2021-01-04 2021-02-05 腾讯科技(深圳)有限公司 多媒体内容的编辑控制方法、装置、电子设备和存储介质
WO2021169150A1 (zh) * 2020-02-28 2021-09-02 北京百度网讯科技有限公司 宿主平台层中的应用接口实现方法、装置、设备和介质
CN114090136A (zh) * 2021-11-29 2022-02-25 北京金堤科技有限公司 具有纠错功能且支持跨平台调用组件的方法和装置
US11698823B2 (en) 2020-02-28 2023-07-11 Beijing Baidu Netcom Science And Technology Co., Ltd. Application interface implementation method in a host platform layer, device, and medium

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090172710A1 (en) * 2007-12-28 2009-07-02 Arman Toorians Method and system for enabling a mini program on a computing device to access an auxiliary system
US20110022198A1 (en) * 2006-09-29 2011-01-27 Rockwell Automation Technologies, Inc. Layered interface in an industrial environment
US20120096096A1 (en) * 2010-10-13 2012-04-19 Jang Tae Ho Mobile communication terminal to provide widget expansion function using message communication, and operation method of the mobile communication terminal
US20130219415A1 (en) * 2012-02-20 2013-08-22 Electronics & Telecommunications Research Institute Method for executing hybrid web application and apparatus therefor
CN104301443A (zh) * 2014-10-09 2015-01-21 百度在线网络技术(北京)有限公司 一种在web页面上调用端能力接口的方法和系统
CN104572278A (zh) * 2014-12-22 2015-04-29 百度在线网络技术(北京)有限公司 轻应用调用本地端能力的方法、装置及设备
CN104883384A (zh) * 2015-03-25 2015-09-02 百度在线网络技术(北京)有限公司 一种为轻应用提供客户端的端能力的方法与装置
US20150356157A1 (en) * 2014-06-06 2015-12-10 The Mathworks, Inc. Unified mapreduce framework for large-scale data processing
CN109062626A (zh) * 2018-07-09 2018-12-21 北京奇艺世纪科技有限公司 Web页面组件与Native组件的交互方法、装置及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296309B1 (en) * 2018-01-25 2019-05-21 Walmart Apollo, Llc Systems and methods for automatic API generation for bi-directional communication between native and web-based components of a mobile application
CN109976831A (zh) * 2019-03-28 2019-07-05 山东浪潮通软信息科技有限公司 一种JavaScript和原生APP之间数据交互方法
CN111367635B (zh) * 2020-02-28 2023-04-25 北京百度网讯科技有限公司 宿主平台层中的应用接口实现方法、装置、设备和介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110022198A1 (en) * 2006-09-29 2011-01-27 Rockwell Automation Technologies, Inc. Layered interface in an industrial environment
US20090172710A1 (en) * 2007-12-28 2009-07-02 Arman Toorians Method and system for enabling a mini program on a computing device to access an auxiliary system
US20120096096A1 (en) * 2010-10-13 2012-04-19 Jang Tae Ho Mobile communication terminal to provide widget expansion function using message communication, and operation method of the mobile communication terminal
US20130219415A1 (en) * 2012-02-20 2013-08-22 Electronics & Telecommunications Research Institute Method for executing hybrid web application and apparatus therefor
US20150356157A1 (en) * 2014-06-06 2015-12-10 The Mathworks, Inc. Unified mapreduce framework for large-scale data processing
CN104301443A (zh) * 2014-10-09 2015-01-21 百度在线网络技术(北京)有限公司 一种在web页面上调用端能力接口的方法和系统
CN104572278A (zh) * 2014-12-22 2015-04-29 百度在线网络技术(北京)有限公司 轻应用调用本地端能力的方法、装置及设备
CN104883384A (zh) * 2015-03-25 2015-09-02 百度在线网络技术(北京)有限公司 一种为轻应用提供客户端的端能力的方法与装置
CN109062626A (zh) * 2018-07-09 2018-12-21 北京奇艺世纪科技有限公司 Web页面组件与Native组件的交互方法、装置及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郑晓琳等: "一种异构系统间的通信平台的设计与实现" *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021169150A1 (zh) * 2020-02-28 2021-09-02 北京百度网讯科技有限公司 宿主平台层中的应用接口实现方法、装置、设备和介质
US11698823B2 (en) 2020-02-28 2023-07-11 Beijing Baidu Netcom Science And Technology Co., Ltd. Application interface implementation method in a host platform layer, device, and medium
CN111949272A (zh) * 2020-07-30 2020-11-17 百度在线网络技术(北京)有限公司 寄宿应用的编译优化方法、装置、电子设备及可读存储介质
CN111949272B (zh) * 2020-07-30 2023-12-22 百度在线网络技术(北京)有限公司 寄宿应用的编译优化方法、装置、电子设备及可读存储介质
CN112331235A (zh) * 2021-01-04 2021-02-05 腾讯科技(深圳)有限公司 多媒体内容的编辑控制方法、装置、电子设备和存储介质
WO2022144016A1 (zh) * 2021-01-04 2022-07-07 腾讯科技(深圳)有限公司 应用程序控制方法、装置、电子设备和存储介质
US11722555B2 (en) 2021-01-04 2023-08-08 Tencent Technology (Shenzhen) Company Limited Application control method and apparatus, electronic device, and storage medium
US11909812B2 (en) 2021-01-04 2024-02-20 Tencent Technology (Shenzhen) Company Limited Application control method and apparatus, electronic device, and storage medium
CN114090136A (zh) * 2021-11-29 2022-02-25 北京金堤科技有限公司 具有纠错功能且支持跨平台调用组件的方法和装置

Also Published As

Publication number Publication date
WO2021169150A1 (zh) 2021-09-02
CN111367635B (zh) 2023-04-25

Similar Documents

Publication Publication Date Title
CN111367635B (zh) 宿主平台层中的应用接口实现方法、装置、设备和介质
CN110865855B (zh) 小程序处理方法及相关设备
CN112988499B (zh) 数据处理方法、装置、电子设备和存储介质
KR102546578B1 (ko) 미니 프로그램 데이터 획득 방법, 장치, 기기 및 저장 매체
CN111737032A (zh) 一种基于微内核系统的子程序运行方法、装置和电子设备
CN111400000B (zh) 网络请求处理方法、装置、设备和存储介质
CN110704136A (zh) 小程序组件的渲染方法、客户端、电子设备及存储介质
JP2021103583A (ja) ターゲットデータの取得方法、ターゲットデータの取得装置、電子機器、非一時的なコンピュータ可読記憶媒体およびコンピュータプログラム
CN111694857B (zh) 存储资源数据的方法、装置、电子设备及计算机可读介质
CN110727434B (zh) 渲染方法、装置、电子设备及存储介质
CN113050940A (zh) 小程序的预览方法、相关装置及计算机程序产品
CN111885114B (zh) 网关中的应用程序接口模块的升级方法、设备及存储介质
CN110543372B (zh) 移动终端原生端与h5端交互的方法及装置
JP2021068415A (ja) コード実行方法、装置、レンダリングデバイス、記憶媒体、及びプログラム
CN112835615B (zh) 软件开发工具包的插件化处理方法、装置及电子设备
CN110765251B (zh) 渲染方法、服务器、电子设备及存储介质
KR102600321B1 (ko) 호스트 플랫폼 계층에서의 애플리케이션 인터페이스 구현 방법, 장치, 설비 및 매체
US11379201B2 (en) Wrapping method, registration method, device, and rendering apparatus
CN110727435B (zh) 渲染方法、装置、电子设备及存储介质
CN111597281B (zh) 车辆定位系统、方法、装置以及电子设备
CN113868299A (zh) 由规则引擎执行的数据处理方法和规则引擎的装置
CN113961376A (zh) 一种消息中间件的切换方法和装置
CN113378166A (zh) 调用操作系统的应用程序接口api的方法和装置
CN115776489A (zh) 信息采集方法、装置、电子设备和计算机可读存储介质
CN113821526A (zh) 查询数据的方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant