CN112559026B - 基于api接口的原生能力拓展方法、设备及存储介质 - Google Patents

基于api接口的原生能力拓展方法、设备及存储介质 Download PDF

Info

Publication number
CN112559026B
CN112559026B CN202011535417.XA CN202011535417A CN112559026B CN 112559026 B CN112559026 B CN 112559026B CN 202011535417 A CN202011535417 A CN 202011535417A CN 112559026 B CN112559026 B CN 112559026B
Authority
CN
China
Prior art keywords
plug
native
plugin
api
native function
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.)
Active
Application number
CN202011535417.XA
Other languages
English (en)
Other versions
CN112559026A (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.)
China Southern Power Grid Digital Platform Technology Guangdong Co ltd
Original Assignee
China Southern Power Grid Digital Platform Technology Guangdong 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 China Southern Power Grid Digital Platform Technology Guangdong Co ltd filed Critical China Southern Power Grid Digital Platform Technology Guangdong Co ltd
Priority to CN202011535417.XA priority Critical patent/CN112559026B/zh
Publication of CN112559026A publication Critical patent/CN112559026A/zh
Application granted granted Critical
Publication of CN112559026B publication Critical patent/CN112559026B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了基于API接口的原生能力拓展方法、设备及存储介质。与相关技术相比,通过获取来自插件仓库的原生功能插件,将所述原生功能插件添加到插件目录,根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包。本申请实施例实现原生能力的快速热插拔,降低原生能力开发难度,节省开发成本,提升开发效率,同时让整个系统更加稳定,维护更加便捷,从而有效提高原生交互能力开发操作的灵活性和便捷性。

Description

基于API接口的原生能力拓展方法、设备及存储介质
技术领域
本申请实施例涉及程序开发技术领域,尤其涉及一种原生能力拓展方法、设备及存储介质。
背景技术
终端应用程序开发中,应用端的HTML(如HTML5,以下简称H5)与原生的交互能力,最终都是通过系统的API来完成两个端(应用端和原生能力端)的交互,但是对于比较通用的原生能力通常可以提供给通用的h5项目进行,但随着需要的原生交互能力原来越多或者有些需要依赖体积比较大的APK,通用的原生能力库就会变得越来越大,对于有些不需要的原生能力,增加的APK的体积造成存储空间浪费。也即是说,目前的原生交互能力开发操作缺乏灵活性和便捷性。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请实施例提供一种基于API接口的原生能力拓展方法、设备及存储介质,能够有效提高原生交互能力开发操作的灵活性和便捷性。
第一方面,本申请实施例提供一种基于API接口的原生能力拓展方法,包括:
获取来自插件仓库的原生功能插件;
将所述原生功能插件添加到插件目录;
根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包。
在一可选的实现方式中,所述获取来自插件仓库的原生功能插件之前,还包括:
创建原生功能插件;
将原生功能插件上传到所述插件仓库。
在一可选的实现方式中,所述创建原生功能插件,包括:
创建JSSDK插件;
为所述JSSDK插件设置API请求接口,编写插件原生功能,以生成原生功能插件。
在一可选的实现方式中,所述创建JSSDK插件,包括:
获取创建指令;所述创建指令包括命令行“poros-devtools create JSSDKplugincom.comtop.myplugin”;
根据所述创建指令,创建JSSDK插件。
在一可选的实现方式中,所述将所述原生功能插件添加到插件目录,包括:
获取添加指令;所述添加指令包括命令行“poros-devtools add JSSDKplugincom.comtop.myplugin”;
根据所述添加指令,将所述原生功能插件添加到插件目录。
在一可选的实现方式中,一种基于API接口的原生能力拓展方法还包括:
在HTML应用部分程序中通过API请求的方式进行原生功能插件调用。
在一可选的实现方式中,一种基于API接口的原生能力拓展方法还包括:
接收删除指令;
根据所述删除指令,删除所述插件目录中对应的原生功能插件;
根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包。
在一可选的实现方式中,所述HTML应用程序包为APK包,所述HTML应用程序为HTML5应用程序。
第二方面,本申请实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的基于API接口的原生能力拓展方法。
第三方面,本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行第一方面所述的基于API接口的原生能力拓展方法。
本申请实施例第一方面提供的基于API接口的原生能力拓展方法,与相关技术相比,通过获取来自插件仓库的原生功能插件,将所述原生功能插件添加到插件目录,根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包。本申请实施例实现原生能力的快速热插拔,降低原生能力开发难度,节省开发成本,提升开发效率,同时让整个系统更加稳定,维护更加便捷,从而有效提高原生交互能力开发操作的灵活性和便捷性。
可以理解的是,上述第二方面至第三方面与相关技术相比存在的有益效果与上述第一方面与相关技术相比存在的有益效果相同,可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的用于执行基于API接口的原生能力拓展方法的系统架构的示意图;
图2是本申请一个实施例提供的应用于电子设备的基于API接口的原生能力拓展方法的流程图;
图3是本申请林一个实施例提供的应用于电子设备的基于API接口的原生能力拓展方法的流程图;
图4是本申请另一个实施例提供的应用于电子设备的基于API接口的原生能力拓展方法的流程图;
图5是本申请一个实施例提供的应用于电子设备的基于API接口的原生能力拓展方法的流程图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请实施例。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请实施例的描述。
需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
还应当理解,在本申请实施例说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请实施例的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的基于API(Application Programming Interface,应用程序接口)接口的原生能力拓展方法,与相关技术相比,通过获取来自插件仓库的原生功能插件,将所述原生功能插件添加到插件目录,根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包。本申请实施例实现原生能力的快速热插拔,降低原生能力开发难度,节省开发成本,提升开发效率,同时让整个系统更加稳定,维护更加便捷,从而有效提高原生交互能力开发操作的灵活性和便捷性。
下面结合附图,对本申请实施例作进一步阐述。
如图1所示,图1是本申请一个实施例提供的用于执行基于API接口的原生能力拓展方法的系统架构的示意图。在图1的示例中,该系统架构包括HTML(Hyper Text MarkupLanguage,超文本标记语言)应用程序包110、插件工具120和插件仓库130。该系统架构中的插件工具作为应用程序开发的系统,可以运行在终端设备中,终端设备可以为移动终端设备,也可以为非移动终端设备。移动终端设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载终端设备、可穿戴设备、超级移动个人计算机、上网本、个人数字助理等;非移动终端设备可以为个人计算机、电视机、柜员机或者自助机等;本发明实施方案不作具体限定。在一些实施例中,HTML应用程序包110为终端设备最终生成的应用程序包。在一些实施例中,插件仓库130可以设置在远端服务器中,也可以和插件工具设置在同一终端设备中,本申请实施例对此不做限定。
其中,插件仓库130与插件工具120通信连接,插件仓库130用于存储原生能力插件,例如摄像头原生能力插件、麦克风原生能力插件、图像分析原生能力插件等。原生能力插件均为具有API接口可访问的原生能力插件。插件仓库130可以设置在远端服务器中,也可以和插件工具设置在同一终端设备中(本地插件),本申请实施例对此不做限定。
插件工具120分别与插件仓库130和HTML应用程序包110通信连接,一方面用于创建和封装原生能力插件传输给插件仓库130进行存储,另一方面用于获取插件仓库130的原生能力插件并打包进HTML应用程序包110,实现原生能力的拓展。在一些实施例中,插件工具120还用于删除HTML应用程序包110插件目录中对应的原生能力插件。
HTML应用程序包110与插件工具120通信连接,HTML应用程序包110包括HTML应用程序部分和原生能力插件部分,HTML应用程序部分可通过API请求的方式进行原生能力插件调用。在一些实施例中,HTML应用程序包是本申请方法的产物,可以被安装和运行的应用程序包,例如,可以安装在Android系统的移动终端的应用程序包,也可以是IOS的移动终端的应用程序包。
本申请实施例描述的系统架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着系统架构的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1中示出的系统架构并不构成对本申请实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在图1所示的系统架构中,插件工具120可以调用其储存的原生能力拓展程序,以执行基于API接口的原生能力拓展方法。
基于上述系统架构,提出本申请实施例的基于API接口的原生能力拓展方法的各个实施例。
参照图2,本申请实施例提供一种基于API接口的原生能力拓展方法,包括:
步骤S1100,获取来自插件仓库的原生功能插件;
步骤S1200,将所述原生功能插件添加到插件目录;
步骤S1300,根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包。
应用端的HTML(如HTML5,以下简称H5),最终都是通过系统的API来完成两个端的交互,但是对于比较通用的原生能力通常可以提供给通用的h5项目进行,但随着需要的原生交互能力原来越多或者有些需要依赖体积比较大的APK(Android applicationpackage,Android应用程序包),通用的原生能力库就会变得越来越大,对于有些不需要的原生能力,白白增加的APK的体积,所以就需要一种以热插拔的插件方式接入、移除原生能力。相关技术中,可以通过添加现有插件仓库里面的插件来拓展原生能力,例如,相关技术可以进行创建插件工程,然后编写自定义的原生能力,然后通过加入自己编写的插件即可实现集成自定义的原生能力。但是在开发自定义插件的过程中往往需要去自己去手动配置难以理解的plugin.xml配置,导致在编写插件时会因为plugin.xml的配置错误而导致项目构建不通过或者调用失败。
本申请实施例基于API接口请求的原生能力调用,通过打包构建脚本对于原生能力的热插拔机制,并且提供动态接入原生能力的机制,简化插件编写的难度,将原生能力与前端API解耦合,添加原生能力无需更改或添加前端文件,简化项目的打包依赖,将插件作为整体的依赖包打包到HTML应用程序包,防止频繁的打包错误,提升开发效率。
在一些实施例中,步骤S1200中,插件目录是指HTML应用程序包需要用到的原生能力插件的列表,可以通过插件目录中原生功能插件的增加实现添加原生功能插件,也可以通过插件目录中原生功能插件的减少实现删除原生功能插件,从而使得原生功能插件的拓展和变更更加灵活。
在一些实施例中,步骤S1300中,可以将插件目录对应的原生功能插件打包进HTML应用程序包。使得HTML应用程序包既包含HTML应用程序部分,又包含原生功能插件部分,HTML应用程序部分可调用HTML应用程序包内部的原生功能插件。在一些实施例中,HTML应用程序包可以是APK包。
本申请实施例提供的基于API接口的原生能力拓展方法,与相关技术相比,通过获取来自插件仓库的原生功能插件,将所述原生功能插件添加到插件目录,根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包。本申请实施例实现原生能力的快速热插拔,降低原生能力开发难度,节省开发成本,提升开发效率,同时让整个系统更加稳定,维护更加便捷,从而有效提高原生交互能力开发操作的灵活性和便捷性。
参照图3,在一些实施例中,步骤S1100,所述获取来自插件仓库的原生功能插件之前,还包括:
步骤S1400,创建原生功能插件;
步骤S1500,将原生功能插件上传到所述插件仓库。
在一些实施例中,针对管理插件仓库,高频使用的插件轻松集成使用。通过上述步骤可实现原生能力的快速热插拔,降低原生能力开发难度,节省开发成本,提升开发效率通过API接口请求方式,将H5与原生能力直接进行解耦合,让整个系统更加稳定,维护更加便捷;丰富的插件仓库,能够满足大部分项目的原生能力需求。
在一些实施例中,步骤S1400,所述创建原生功能插件,包括:
步骤S1410,创建JSSDK(JavaScript-Software Development Kit,JS软件开发工具包)插件;
步骤S1420,为所述JSSDK插件设置API请求接口,编写插件原生功能,以生成原生功能插件。
步骤S1420是对JSSDK插件进行封装,使得其可通过API请求接口被调用。
在一些实施例中,步骤S1410,所述创建JSSDK插件,包括:
步骤S1411,获取创建指令;所述创建指令包括命令行“poros-devtools createJSSDKplugin com.comtop.myplugin”;
步骤S1412,根据所述创建指令,创建JSSDK插件。
在一些实施例中,可以通过人机交互装置(如鼠标、键盘、触摸屏等),获取来自用户的特定的创建命令行,创建JSSDK插件,例如,命令行可以是“poros-devtools createJSSDKplugin com.comtop.myplugin”,创建JSSDK插件“com.comtop.myplugin”。
在一些实施例中,步骤S1200,所述将所述原生功能插件添加到插件目录,包括:
步骤S1210,获取添加指令;所述添加指令包括命令行“poros-devtools addJSSDKplugin com.comtop.myplugin”;
步骤S1220,根据所述添加指令,将所述原生功能插件添加到插件目录。
在一些实施例中,可以通过人机交互装置(如鼠标、键盘、触摸屏等),获取来自用户的特定的添加命令行,将所述原生功能插件添加到插件目录,例如,命令行可以是“poros-devtools add JSSDKplugin com.comtop.myplugin”,添加JSSDK插件“com.comtop.myplugin”。
参照图4,在一些实施例中,一种基于API接口的原生能力拓展方法还包括:
步骤S1600,在HTML应用部分程序中通过API请求的方式进行原生功能插件调用。
在一些实施例中,在HTML应用部分程序中通过API请求的方式进行原生功能插件调用例如,API请求命令行可以是“eim://com.comtop.eim/extension/com.comtop.myplugin?action=xxx&succallback=xxx&failcallb ack=xxx&key1=value1&key2=value2.....”。
参照图5,在一些实施例中,一种基于API接口的原生能力拓展方法还包括:
步骤S1700,接收删除指令;
步骤S1800,根据所述删除指令,删除所述插件目录中对应的原生功能插件;
步骤S1900,根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包。
在一些实施例中,可以通过人机交互装置(如鼠标、键盘、触摸屏等),获取来自用户的特定的删除命令行,将所述原生功能插件从插件目录中删除。
在一些实施例中,所述HTML应用程序包为APK包,所述HTML应用程序为HTML5应用程序。
在一些实施例中,HTML应用程序包可以根据应用系统环境而变化,可以是android系统的应用程序包,也可以是IOS系统的应用程序包等等。
在一些实施例中,插件工具能够完成插件的创建、添加(本地插件或插件仓库上的插件)、删除。应用端通过打包构建脚本动态的添加删除原生能力依赖包。H5使用API接口形式的请求来调用动态化的原生能力。
在一些实施例中,可以使用命令行添加插件,插件会被添加到对应的插件目录;也可以使用命令行删除插件,插件会从对应的插件目录被删除掉;也可以使用命令行进行打包,打包插件会将插件目录中的插件统一打包进APK中;H5端使用统一的API进行调用原生功能插件。
以下以两个具体的示例进行说明本申请实施例的原生能力拓展机制。
示例一
基于API接口的原生能力拓展方法包括步骤:
(1)创建JSSDK插件。
例如,可通过poros-devtools create JSSDKplugin com.comtop.myplugin来创建插件。
(2)定义好API请求接口,编写插件原生功能。
(3)添加插件。
例如,可通过poros-devtools add JSSDKplugin com.comtop.myplugin来添加插件。
(4)打包构建。打包构建脚本会将插件动态的打包进APK中。
(5)H5调用原生能力。
在H5中通过API请求的方式进行com.comtop.myplugin插件的原生能力调用。例如,可通过命令“eim://com.comtop.eim/extension/com.comtop.myplugin?action=xxx&succallback=xxx&failcallb ack=xxx&key1=value1&key2=value2.....”,实现插件的原生能力调用。
示例二
基于API接口的原生能力拓展方法包括步骤:
(1)通过命令行工具创建插件模板工程(android端示例)。例如,可以创建调用工程目录和插件目录。
(2)在PluginEntryProvider中的onAction方法中进行业务逻辑的开发,创建原生能力插件。
例如,业务逻辑的开发的部分代码可以参照如下:
CRouterMeta(path="/extension/com.example.mytaost")
public class PluginEntryProvider extends AbstractRouteProvider{
//获veb就需要调用action的key private static final String PARAMS_ACTION="action";
//定义toast操作
private static final String PARANS_ACTION_TOAST="toast";
//taost操作参数的key private static final String ACTION_TOAST_PARAMS_MESSAGE="message";eoverride public boolean onAction(GNonNul1 Contextcontext,@NonNull WebView webview,GNonNu11 Bundle data,@NonNullRouterProviderMeta item){
//获veb端需要调用action
string action=data.getstring(PARAMS_ACTION);if(Textutils.isEmpty(action)){
return true;if(Textutils.equals(action,PARANS_ACTION_TOAST)){
//获段toast操作的message参数的值,并完成吐司
Toast.makeText(context,data.getstring(ACTION_TOAST_PARAIMS_MESSAGE),ToaSt.LENGTH_SHORT).show();return true;}。
上述开发的插件的难度和工作量相比与相关技术大大降低。
(3)插件调试,直接运行example项目加载上线H5应用进行调试插件功能,H5应用通过JSSDK插件拓展接口进行调用插件功能。
例如,插件调试的部分代码可以参照如下:
jssdk.extendJssdk(
‘com.comtop.pluginlib',//pluginId
‘toast',//要调用的action
{message:‘吐司内容'},//toast操作所需要的nessage参数function(){console.log('success')},//成功回调function(){console.log('fail')}//失败回调);
(4)通过命令行工具添加插件到项目。
例如,可通过命令行“poros-devtools add com.comtop.pluginlib”将原生能力插件添加到插件目录。
(5)打包器读取JSSDK插件目录将JSSDK插件功能打包进项目。
例如,打包的部分代码可以参照如下:
def projectRoot=rootProject.projectDir def pluginsFile=new File(projectRoot,'files/poros_plugins')
if(pluginsFile.exists()&&pluginsFile.directory){
pluginsFile.listFiles().each{File f->
if(f.directory){
implementation project(":${f.name}")
(6)最后在项目中进行调用。
例如,在H5中通过API请求的方式进行com.comtop.myplugin插件的原生能力调用。例如,可通过命令“eim://com.comtop.eim/extension/com.comtop.myplugin?action=xxx&succallback=xxx&failcallba ck=xxx&key1=value1&key2=value2.....”,实现插件的原生能力调用。
在一些实施例中,实现调用部分代码如下:
JSSDK.extend]sSDK(
‘com.comtop.pluginlib',//pluginId
‘toast',/∥要调用的的ction
{message:’吐司内容},//toast操作所需要的nessage参数function(){console.log('success')},/∥成动回潮function(){console.1og('fail')}//关败回调);
有上述可知,相对于相关技术,开发的插件的难度和工作量大大降低。
另外,本申请实施例还提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的基于API接口的原生能力拓展方法。
处理器和存储器可以通过总线或者其他方式连接。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
需要说明的是,本实施例中的电子设备,可以应用为如图1所示实施例的系统架构中的电子设备,本实施例中的电子设备和如图1所示实施例的系统架构中的电子设备具有相同的发明构思,因此这些实施例具有相同的实现原理以及技术效果,此处不再详述。
实现上述实施例的基于API接口的原生能力拓展方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例中的基于API接口的原生能力拓展方法,例如,执行以上描述的图2中的方法步骤S1100至S1300。
本申请实施例提供的基于API接口的原生能力拓展方法,与相关技术相比,通过获取来自插件仓库的原生功能插件,将所述原生功能插件添加到插件目录,根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包。本申请实施例实现原生能力的快速热插拔,降低原生能力开发难度,节省开发成本,提升开发效率,同时让整个系统更加稳定,维护更加便捷,从而有效提高原生交互能力开发操作的灵活性和便捷性。
另外,本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述的基于API接口的原生能力拓展方法。该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述电子设备实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的基于API接口的原生能力拓展方法,例如,执行以上描述的图2中的方法步骤S1100至S1300。
本申请实施例提供的基于API接口的原生能力拓展方法,与相关技术相比,通过获取来自插件仓库的原生功能插件,将所述原生功能插件添加到插件目录,根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包。本申请实施例实现原生能力的快速热插拔,降低原生能力开发难度,节省开发成本,提升开发效率,同时让整个系统更加稳定,维护更加便捷,从而有效提高原生交互能力开发操作的灵活性和便捷性。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本申请实施例的较佳实施进行了具体说明,但本申请实施例并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请实施例精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请实施例权利要求所限定的范围内。

Claims (5)

1.一种基于API接口的原生能力拓展方法,其特征在于,包括:
创建原生功能插件;
将原生功能插件上传到插件仓库;
所述创建原生功能插件,包括:
创建JSSDK插件;
为所述JSSDK插件设置API请求接口,编写插件原生功能,以生成原生功能插件;
所述创建JSSDK插件,包括:
获取创建指令;所述创建指令包括命令行“poros-devtools create JSSDKplugincom.comtop.myplugin”;
根据所述创建指令,创建JSSDK插件;
获取来自插件仓库的原生功能插件;
将所述原生功能插件添加到插件目录;
所述将所述原生功能插件添加到插件目录,包括:
获取添加指令;所述添加指令包括命令行“poros-devtools add JSSDKplugincom.comtop.myplugin”;
根据所述添加指令,将所述原生功能插件添加到插件目录;
根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包;
所述方法还包括:
接收删除指令;
根据所述删除指令,删除所述插件目录中对应的原生功能插件;
根据所述插件目录,将插件目录对应的原生功能插件打包进HTML应用程序包。
2.根据权利要求1所述的一种基于API接口的原生能力拓展方法,其特征在于,还包括:
在HTML应用部分程序中通过API请求的方式进行原生功能插件调用。
3.根据权利要求1所述的一种基于API接口的原生能力拓展方法,其特征在于,所述HTML应用程序包为APK包,所述HTML应用程序为HTML5应用程序。
4.一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任意一项所述的基于API接口的原生能力拓展方法。
5.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1至3中任意一项所述的基于API接口的原生能力拓展方法。
CN202011535417.XA 2020-12-23 2020-12-23 基于api接口的原生能力拓展方法、设备及存储介质 Active CN112559026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011535417.XA CN112559026B (zh) 2020-12-23 2020-12-23 基于api接口的原生能力拓展方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011535417.XA CN112559026B (zh) 2020-12-23 2020-12-23 基于api接口的原生能力拓展方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112559026A CN112559026A (zh) 2021-03-26
CN112559026B true CN112559026B (zh) 2024-05-14

Family

ID=75030857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011535417.XA Active CN112559026B (zh) 2020-12-23 2020-12-23 基于api接口的原生能力拓展方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112559026B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113391852B (zh) * 2021-06-07 2024-06-04 广州通达汽车电气股份有限公司 一种平台软件扩展方法及装置
CN113778554A (zh) * 2021-09-01 2021-12-10 粒子文化科技集团(杭州)股份有限公司 插件处理方法、电子装置和存储介质
CN114116048B (zh) * 2021-11-10 2023-12-01 北京乐驾科技有限公司 移动设备应用程序轻量化的实现方法以及装置

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636139A (zh) * 2015-01-26 2015-05-20 北京邮电大学 一种可视化跨平台移动应用开发与生成系统
CN104793961A (zh) * 2015-05-10 2015-07-22 黄伟 使用原生Web代码的快速JavaWeb开发方法及系统
CN106681718A (zh) * 2016-12-16 2017-05-17 武汉中地数码科技有限公司 一种基于工具集的桌面端插件框架及实现方法
CN106990966A (zh) * 2017-03-31 2017-07-28 中国科学技术大学苏州研究院 基于前端框架的移动端跨平台应用开发框架及开发方法
WO2019072110A1 (zh) * 2017-10-11 2019-04-18 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质
CN110069247A (zh) * 2019-04-28 2019-07-30 山东浪潮商用系统有限公司 一种应用程序的开发方法及装置、使用方法及装置
CN110704131A (zh) * 2019-08-29 2020-01-17 北京三快在线科技有限公司 一种html5应用调用原生应用的方法和装置
CN110704122A (zh) * 2018-07-10 2020-01-17 中国移动通信集团浙江有限公司 插件加载方法及装置
CN110704783A (zh) * 2019-10-09 2020-01-17 叮当快药科技集团有限公司 基于自定义协议的h5页面与原生app的交互方法和装置
CN110750288A (zh) * 2019-10-23 2020-02-04 广州华多网络科技有限公司 原生工程配置方法、装置、电子设备及存储介质
CN111290740A (zh) * 2020-02-21 2020-06-16 武汉联影医疗科技有限公司 应用程序的开发方法、装置、计算机设备和存储介质
CN111736922A (zh) * 2020-07-23 2020-10-02 平安国际智慧城市科技股份有限公司 插件调用方法、装置、电子设备及存储介质
CN111796834A (zh) * 2020-06-30 2020-10-20 福信富通科技股份有限公司 一种可组合的微服务开发框架的部署方法、装置及设备

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636139A (zh) * 2015-01-26 2015-05-20 北京邮电大学 一种可视化跨平台移动应用开发与生成系统
CN104793961A (zh) * 2015-05-10 2015-07-22 黄伟 使用原生Web代码的快速JavaWeb开发方法及系统
CN106681718A (zh) * 2016-12-16 2017-05-17 武汉中地数码科技有限公司 一种基于工具集的桌面端插件框架及实现方法
CN106990966A (zh) * 2017-03-31 2017-07-28 中国科学技术大学苏州研究院 基于前端框架的移动端跨平台应用开发框架及开发方法
WO2019072110A1 (zh) * 2017-10-11 2019-04-18 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质
CN110704122A (zh) * 2018-07-10 2020-01-17 中国移动通信集团浙江有限公司 插件加载方法及装置
CN110069247A (zh) * 2019-04-28 2019-07-30 山东浪潮商用系统有限公司 一种应用程序的开发方法及装置、使用方法及装置
CN110704131A (zh) * 2019-08-29 2020-01-17 北京三快在线科技有限公司 一种html5应用调用原生应用的方法和装置
CN110704783A (zh) * 2019-10-09 2020-01-17 叮当快药科技集团有限公司 基于自定义协议的h5页面与原生app的交互方法和装置
CN110750288A (zh) * 2019-10-23 2020-02-04 广州华多网络科技有限公司 原生工程配置方法、装置、电子设备及存储介质
CN111290740A (zh) * 2020-02-21 2020-06-16 武汉联影医疗科技有限公司 应用程序的开发方法、装置、计算机设备和存储介质
CN111796834A (zh) * 2020-06-30 2020-10-20 福信富通科技股份有限公司 一种可组合的微服务开发框架的部署方法、装置及设备
CN111736922A (zh) * 2020-07-23 2020-10-02 平安国际智慧城市科技股份有限公司 插件调用方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN112559026A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
CN112559026B (zh) 基于api接口的原生能力拓展方法、设备及存储介质
CN108984174B (zh) 跨平台的应用创建方法、装置、服务器和存储介质
US9471553B2 (en) Automatically rendering web or hybrid applications natively
Taivalsaari et al. Web browser as an application platform
CN111240684B (zh) 一种js代码的裁剪方法、装置、介质和电子设备
US9471345B2 (en) Runtime generation and injection of java annotations
US9460062B2 (en) Local rendering of an object as an image
US7581190B2 (en) Constructing user interfaces on top of cmdlets
US9952835B2 (en) Generation of hybrid enterprise mobile applications in cloud environment
US20190004774A1 (en) Automated source code adaption to inject features between platform versions
CN111414350B (zh) 一种服务生成方法及装置
CN111680253A (zh) 页面应用数据包生成方法、装置、计算机设备及存储介质
CN111740948A (zh) 数据包发布方法、动态更新方法、装置、设备及介质
WO2014197239A1 (en) Automatic mediation of resource access in mobile applications
CN102693238B (zh) Widget应用方法、系统及多媒体终端
US10506017B2 (en) Manipulation of PDF file content through HTTP requests
CN112667246A (zh) 应用功能扩展的方法、装置及电子设备
CN111078217A (zh) 脑图生成方法、装置和计算机可读存储介质
US20190197754A1 (en) Method and Apparatus for Implementing Animation in Client Application and Animation Script Framework
CN115525305A (zh) 数据处理、应用启动方法、装置、计算机设备和存储介质
CN113687880A (zh) 一种调用组件的方法、装置、设备和介质
CN117519691B (zh) 应用程序处理方法、装置、计算机设备和存储介质
CN112068814A (zh) 可执行文件的生成方法、装置、系统及介质
CN117354114B (zh) 一种基于云原生架构的数据服务发布方法和系统
CN113805878B (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
CB02 Change of applicant information

Country or region after: China

Address after: 518000 building 501, 502, 601, 602, building D, wisdom Plaza, Qiaoxiang Road, Gaofa community, Shahe street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: China Southern Power Grid Digital Platform Technology (Guangdong) Co.,Ltd.

Address before: 518000 building 501, 502, 601, 602, building D, wisdom Plaza, Qiaoxiang Road, Gaofa community, Shahe street, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: China Southern Power Grid Shenzhen Digital Power Grid Research Institute Co.,Ltd.

Country or region before: China

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant