CN117492968A - 原生应用程序调用方法、装置、电子设备及可读存储介质 - Google Patents

原生应用程序调用方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN117492968A
CN117492968A CN202311842880.2A CN202311842880A CN117492968A CN 117492968 A CN117492968 A CN 117492968A CN 202311842880 A CN202311842880 A CN 202311842880A CN 117492968 A CN117492968 A CN 117492968A
Authority
CN
China
Prior art keywords
information
target
native application
target information
bridge
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
CN202311842880.2A
Other languages
English (en)
Other versions
CN117492968B (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 Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software 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 China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202311842880.2A priority Critical patent/CN117492968B/zh
Publication of CN117492968A publication Critical patent/CN117492968A/zh
Application granted granted Critical
Publication of CN117492968B publication Critical patent/CN117492968B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请提供一种原生应用程序调用方法、装置、电子设备及可读存储介质,涉及数据处理技术领域,该方法包括:获取目标信息,目标信息用于调用原生应用程序进行操作;向第二设备发送目标信息,以使原生应用程序根据目标信息执行目标操作,目标操作与目标信息对应;通过桥接收第二设备发送的针对目标信息的回复信息。本申请通过第一设备向第二设备发送目标信息,以使第二设备的原生应用程序根据目标信息执行目标操作,可以适配不同系统的原生应用程序,提高了兼容性,进而能降低调用不同系统的原生应用程序进行开发时间。

Description

原生应用程序调用方法、装置、电子设备及可读存储介质
技术领域
本申请涉及数据处理技术领域,具体涉及一种原生应用程序调用方法、装置、电子设备及可读存储介质。
背景技术
原生应用程序的开发成本高、周期长,且依赖于用户更新,为更好的开发原生应用程序,相关技术中提供原生应用程序和网站(web)H5端交互的桥(JSBridge),通过JSBridge调用原生应用程序中的方法实现对原生应用程序的开发。但在相关技术中,JSBridge的兼容性较差,对于不同系统的原生应用程序无法同时开发,技术人员在开发不同系统的原生应用程序时需要分别调用并开发,导致调用不同系统的原生应用程序进行开发时间较长。
可见,相关技术中存在调用不同系统的原生应用程序进行开发时间较长的问题。
发明内容
本申请实施例提供一种原生应用程序调用方法、装置、电子设备及可读存储介质方法、装置、电子设备及可读存储介质,以解决相关技术中存在调用不同系统的原生应用程序进行开发时间较长的问题。
为解决上述问题,本申请是这样实现的:
第一方面,本申请实施例提供一种原生应用程序调用方法,应用于第一设备,所述第一设备通过桥与应用有原生应用程序的第二设备通信,包括:
获取目标信息,所述目标信息用于调用所述原生应用程序进行操作;
向所述第二设备发送所述目标信息,以使所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应;
通过所述桥接收所述第二设备发送的针对所述目标信息的回复信息。
第二方面,本申请实施例提供一种原生应用程序调用方法,应用于第二设备,所述第二设备应用的原生应用程序通过桥与第一设备通信,包括:
接收目标信息,所述目标信息用于调用所述原生应用程序进行操作;
基于所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应;
通过所述桥向所述第一设备发送针对所述目标信息的回复信息。
第三方面,本申请实施例还提供一种原生应用程序调用装置,包括:
获取模块,用于获取目标信息,所述目标信息用于调用所述原生应用程序进行操作;
发送模块,用于向第二设备发送所述目标信息,以使所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应;
接收模块,用于通过所述桥接收所述第二设备发送的针对所述目标信息的回复信息。
第四方面,本申请实施例还提供一种原生应用程序调用装置,包括:
接收模块,用于接收目标信息,所述目标信息用于调用所述原生应用程序进行操作;
处理模块,用于基于所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应;
发送模块,用于向第一设备发送针对所述目标信息的回复信息。
第五方面,本申请实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述第一方面所述的原生应用程序调用方法中的步骤,或者,实现如上述第二方面所述的原生应用程序调用方法中的步骤。
第六方面,本申请实施例还提供一种可读存储介质,用于存储程序,所述程序被处理器执行时实现如上述第一方面所述的原生应用程序调用方法中的步骤,或者,实现如上述第二方面所述的原生应用程序调用方法中的步骤。
在本申请实施例中,第一设备通过桥与第二设备的原生应用程序通信,通过第一设备向第二设备发送目标信息,以使第二设备的原生应用程序根据目标信息执行目标操作,可以适配不同系统的原生应用程序;同时,第一设备通过桥接收第二设备发送的回复信息,完成整个原生应用程序的调用流程,实现调用不同系统的原生应用程序,提高了兼容性,从而降低了调用不同系统的原生应用程序进行开发时间。
附图说明
为更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种原生应用程序调用方法的流程图;
图2是本申请实施例提供的JSBridge的示意图;
图3是本申请实施例提供的一种原生应用程序调用方法的流程图;
图4是本申请实施例提供的一种原生应用程序调用装置的结构图;
图5是本申请实施例提供的一种原生应用程序调用装置的结构图;
图6是本申请实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种原生应用程序调用方法的流程图,应用于第一设备,所述第一设备通过桥与应用有原生应用程序的第二设备通信,如图1所示,该方法包括以下步骤:
步骤101、获取目标信息,所述目标信息用于调用所述原生应用程序进行操作。
上述目标信息为第一设备需要调用第二设备的原生应用程序进行操作的信息,目标信息包括操作标识,第二设备的原生应用程序可以基于操作标识查询对应操作并执行。目标信息还可以包括执行参数,以使原生应用程序基于执行参数执行标识对应的操作。
上述桥(JSBridge)为第一设备和第二设备交互的媒介,在一个命名空间中包括一类JSBridge,一类JSBridge中包括针对安卓系统的JSBridge(将该JSBridge的属性为isAndroidAPP)和针对ios系统的JSBridge(将该JSBridge的属性为isIosAPP),在第一设备和第二设备交互数据的情况下,调用命名空间中第二设备的系统对应的JSBridge实现交互数据。
其中,如图2所示,对于不同的系统,全局变量中设计不同的命名空间,命名空间的标识设为固定字符串,通过命名空间将应用程序编程接口(Application ProgrammingInterface,API)进行管理,在命名空间中抽象出不同的对象作为JSBridge,从而实现JSBridge调用不同API发送目标信息,以适配不同的系统。
步骤102、向所述第二设备发送所述目标信息,以使所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应。
上述第二设备中原生应用程序的运行环境可以是安卓系统和ios系统,向第二设备发送目标信息,安卓系统和ios系统的原生应用程序可以对目标信息执行目标操作,目标操作为安卓系统和ios系统中与目标信息中的标识对应的操作。
其中,上述目标操作为预先获得的,原生应用程序可以执行的操作。在发送目标信息之前,可以先获取第二设备中的原生应用程序的全部可执行操作,通过如下编码实现:
const gotoNative = function (path, callback) {
if (typeof path === 'string'&&callback) {
return jsBridge("gotoNative", { path, callback });
} else if (typeof path === 'string'&&!callback) {
return jsBridge("gotoNative", { path });
}
if (typeof path === "object") {
return jsBridge("gotoNative", path);
}
}
在得到原生应用程序的全部可执行操作之后,再结合开发需求确定目标操作,通过第一设备发送目标信息以使原生应用程序执行目标操作。
上述向第二设备发送目标信息,可以是通过JSBridge发送目标信息,也可以是直接发送目标信息,使得同时能适配安卓系统和ios系统的原生应用程序,提高了调用原生应用程序的兼容性。
步骤103、通过所述桥接收所述第二设备发送的针对所述目标信息的回复信息。
上述回复信息为第二设备根据目标信息执行目标操作后的回复信息,用于表征执行目标操作的结果,可以为根据目标信息执行目标操作后得到的数据信息,也可以为根据目标信息执行目标操作失败后发送的信息。应理解,第二设备通过JSBridge向第一设备发送回复信息,使得第一设备能够接收到不同系统的第二设备的回复信息,实现调用不同系统的原生应用程序,提高了兼容性。
在本申请实施例中,第一设备通过桥与第二设备的原生应用程序通信,通过第一设备向第二设备发送目标信息,以使第二设备的原生应用程序根据目标信息执行目标操作,可以适配不同系统的原生应用程序;同时,第一设备通过桥接收第二设备发送的回复信息,完成整个原生应用程序的调用流程,实现调用不同系统的原生应用程序,提高了兼容性,从而降低了调用不同系统的原生应用程序进行开发时间。
在一个实施例中,所述向所述第二设备发送所述目标信息,包括如下至少一项:
在所述第二设备为安卓系统的情况下,通过所述桥向所述第二设备发送所述目标信息;
在所述第二设备为ios系统的情况下,向所述第二设备发送所述目标信息。
应理解,由于第二设备的运行系统可能存在区别,对于不同的系统进行不同的发送目标信息的设计,以实现针对不同系统的原生应用程序的调用。
其中,在第二设备为安卓系统的情况下,通过桥向第二设备发送目标信息,安卓系统的原生应用程序可以通过桥解析得到目标信息。例如,通过JSBridge调用安卓系统的原生应用程序的接口发送目标信息的代码如下:
@JavascriptInterface
public void openWebview(String params) {
KLog.printTagWebView("openWebview() openWebview params =" +params);
CJsOpenWeb webInfo = GsonUtils.fromJson(params, CJsOpenWeb.class);
RouterManager.gotoWebActivity(null, webInfo.getUrl(), "");
sendJsFunctionSuccess(webInfo.getCallbackKey(), new CAppSuccess());
}
安卓系统的原生应用程序通过JSBridge得到目标信息后,在根据目标信息执行目标操作,从而实现调用安卓系统的原生应用程序。
而在第二设备为ios系统的情况下,直接向第二设备发送目标信息,ios系统可以直接接收到目标信息后执行目标操作。例如,第一设备将目标信息添加至邮件信息(postMessage),通过发送邮件信息实现向第二设备发送目标信息。在第二设备接收到目标信息后,调用ios系统的原生应用程序执行目标操作,具体代码如下:
// Swift
func userContentController(
userContentController: WKUserContentController,
didReceive message: WKScriptMessage,
replyHandler: @escaping (Any?, String?) ->Void
) {
switch message.name {
case "openWebview ":
let result = ""
openWebview("result", nil)
default:
return
}
}
通过上述方法实现调用ios系统的原生应用程序。
在本申请实施例中,在第二设备为安卓系统的情况下,通过桥向第二设备发送目标信息;在第二设备为ios系统的情况下,向第二设备发送目标信息,从而实现向不同系统的第二设备发送目标信息,进而调用不同系统的原生应用程序,提高了兼容性。
在一个实施例中,所述桥中应用有公共函数;所述通过所述桥向所述第二设备发送所述目标信息,包括:
将所述目标信息进行加密,得到中间数据;
基于所述桥将所述公共函数和所述中间数据发送至所述第二设备,以使所述原生应用程序基于所述公共函数对所述中间数据解析,得到所述目标信息。
上述公共函数为一个JSBridge中应用的公共函数,通过将目标信息进行加密,得到中间数据,再将中间数据和公共函数发送至第二设备,使得第二设备的原生应用程序可以调用JSBridge中的公共函数解析中间数据,得到目标信息,从而避免目标信息泄露,提高了安全性。
在一个实施例中,所述桥中应用有回调函数;所述回复信息为所述原生应用程序调用所述回调函数对所述目标操作的结果进行处理得到的信息。
上述回调函数为原生应用程序执行目标操作后,将目标操作得到的结果进行处理的函数。通过回调函数进行处理,得到回复信息,以使得第一设备能解析回复信息得到原生应用程序执行目标操作的结果,进而确定调用原生应用程序是否成功,避免回复信息泄露,提高了安全性。
其中,安卓系统的原生应用程序和ios的原生应用程序都可以通过调用回调函数,以对目标操作的结果进行处理得到回复信息。
例如,第一设备需要获取第二设备的原生应用程序中的用户标识(token),在第二设备的执行目标操作得到token后,调用回调函数对token进行处理,得到回复信息,再向第一设备发送回复信息;第一设备接收到回复信息后,对回复信息进行解析,得到token。
在一个实施例中,所述桥中还应用有承诺函数;
所述通过所述桥接收所述第二设备发送的针对所述目标信息的回复信息,包括:
读取全局变量队列,得到目标全局变量,所述目标全局变量为所述原生应用程序调用所述回调函数对所述目标操作的结果进行处理,得到所述回复信息之后,所述原生应用程序调用所述桥中的承诺函数,对所述回复信息处理,并将处理后的回复信息添加至全局变量队列的变量;
对所述目标全局变量解析,得到回复信息。
应理解,在相关技术中,通过桥调用原生应用程序为同步调用,即在调用时第一设备向第二设备发送一个目标信息后,在接收到一个回复信息的情况下,可以处理该回复信息;若同时接收到多个第二设备发送的回复信息,第一设备无法处理,导致出现第一设备的输出页面可能出现白屏的问题。
而在本申请实施例中,通过承诺函数对回复信息进行处理,得到目标全局变量,再将该目标全局变量添加至全局变量队列中,第一设备可以根据全局变量队列中的顺序依次调取变量处理,从而实现通过桥调用原生应用程序的异步返回处理,避免出现显示白屏的问题。
其中,承诺函数为在JSBridge中预先设置的函数,安卓系统的原生应用程序和ios系统的原生应用程序都可以调用JSBridge中的承诺函数处理回复信息,并将得到的目标全局变量添加至全局变量队列中。
在一个实施例中,所述回复信息用于表示所述原生应用程序根据所述目标信息执行目标操作失败;
所述回复信息是存储在所述桥上,且被所述第二设备获取得到的信息,所述回复信息包括如下至少一项信息:
第一信息,用于表征所述目标信息调用的目标操作不在所述原生应用程序中;
第二信息,用于表征所述目标信息调用的不是一个操作;
第三信息,用于表征唤起所述原生应用程序失败;
第四信息,用于表征基于所述原生应用程序调用回调函数错误;
第五信息,用于表征基于所述原生应用程序调用回调函数超时。
应理解,在原生应用程序根据目标信息执行目标操作成功的情况下,根据回调函数对目标操作的结果处理,得到回复信息;而在原生应用程序根据目标信息执行目标操作失败的情况下,同样需要通知第一设备失败原因。在第二设备的原生应用程序根据目标信息执行目标操作失败的情况下,调用JSBridge中预先存储的回复信息并向第一设备发送。
其中,JSBridge中存储有上述第一信息、第二信息、第三信息、第四信息和第五信息,第二设备根据执行目标操作失败的具体原因发送第一信息、第二信息、第三信息、第四信息和第五信息中的一个信息。
请参见图3,图3是本申请实施例提供的一种原生应用程序调用方法的流程图,应用于第二设备,所述第二设备应用的原生应用程序通过桥与第一设备通信,如图3所示,该方法包括:
步骤301、接收目标信息,所述目标信息用于调用所述原生应用程序进行操作;
步骤302、基于所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应;
步骤303、通过所述桥向所述第一设备发送针对所述目标信息的回复信息。
在本申请实施例中,第二设备接收第一设备发送的目标信息,并调用原生应用程序,基于原生应用程序根据目标信息执行目标操作,再向第一设备发送回复信息,其中,不同系统的第二设备均可以接收目标信息,且可以通过桥发送回复信息,从而实现不同的第二设备的原生应用程序被第一设备调用,提高了兼容性,从而降低了调用不同系统的原生应用程序进行开发时间。
在一个实施例中,所述接收目标信息,包括:
在所述第二设备为安卓系统的情况下,通过所述桥接收所述第一设备发送所述目标信息;
在所述第二设备为ios系统的情况下,接收所述第一设备发送所述目标信息。
在一个实施例中,所述桥中应用有公共函数;所述接收目标信息,包括:
接收所述公共函数和中间数据,所述中间数据为所述第一设备对所述目标信息进行加密得到的数据;
基于所述公共函数对所述中间数据解析,得到所述目标信息。
在一个实施例中,所述桥中应用有回调函数;所述回复信息为所述原生应用程序调用所述回调函数对所述目标操作的结果进行处理得到的信息。
在一个实施例中,所述桥中还应用有承诺函数;
所述通过所述桥向所述第一设备发送针对所述目标信息的回复信息,包括:
基于所述原生应用程序调用所述回调函数对所述目标操作的结果进行处理,得到所述回复信息;
基于所述原生应用程序调用所述桥中的承诺函数对所述回复信息处理,得到目标全局变量;
将所述目标全局变量添加至全局变量队列,以使所述第一设备对所述全局变量队列中的所述目标全局变量解析,得到回复信息。
在一个实施例中,所述回复信息用于表示所述原生应用程序根据所述目标信息执行目标操作失败;
所述回复信息是存储在所述桥上,且被所述第二设备获取得到的信息,所述回复信息包括如下至少一项信息:
第一信息,用于表征所述目标信息调用的目标操作不在所述原生应用程序中;
第二信息,用于表征所述目标信息调用的不是一个操作;
第三信息,用于表征唤起所述原生应用程序失败;
第四信息,用于表征基于所述原生应用程序调用回调函数错误;
第五信息,用于表征基于所述原生应用程序调用回调函数超时。
请参见图4,图4是本申请实施例提供的一种原生应用程序调用装置的结构图,如图4所示,原生应用程序调用装置400包括:
获取模块401,用于获取目标信息,所述目标信息用于调用所述原生应用程序进行操作;
发送模块402,用于向第二设备发送所述目标信息,以使所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应;
接收模块403,用于通过所述桥接收所述第二设备发送的针对所述目标信息的回复信息。
在一个实施例中,所述发送模块402包括如下至少一项:
第一发送单元,用于在所述第二设备为安卓系统的情况下,通过所述桥向所述第二设备发送所述目标信息;
在所述第二设备为ios系统的情况下,向所述第二设备发送所述目标信息。
在一个实施例中,所述桥中应用有公共函数;所述第一发送单元包括:
第一处理子单元,用于将所述目标信息进行加密,得到中间数据;
第一发送子单元,用于基于所述桥将所述公共函数和所述中间数据发送至所述第二设备,以使所述原生应用程序基于所述公共函数对所述中间数据解析,得到所述目标信息。
在一个实施例中,所述桥中应用有回调函数;所述回复信息为所述原生应用程序调用所述回调函数对所述目标操作的结果进行处理得到的信息。
在一个实施例中,所述桥中还应用有承诺函数;
所述接收模块403包括:
读取单元,用于读取全局变量队列,得到目标全局变量,所述目标全局变量为所述原生应用程序调用所述回调函数对所述目标操作的结果进行处理,得到所述回复信息之后,所述原生应用程序调用所述桥中的承诺函数,对所述回复信息处理,并将处理后的回复信息添加至全局变量队列的变量;
解析单元,用于对所述目标全局变量解析,得到回复信息。
在一个实施例中,所述回复信息用于表示所述原生应用程序根据所述目标信息执行目标操作失败;
所述回复信息是存储在所述桥上,且被所述第二设备获取得到的信息,所述回复信息包括如下至少一项信息:
第一信息,用于表征所述目标信息调用的目标操作不在所述原生应用程序中;
第二信息,用于表征所述目标信息调用的不是一个操作;
第三信息,用于表征唤起所述原生应用程序失败;
第四信息,用于表征基于所述原生应用程序调用回调函数错误;
第五信息,用于表征基于所述原生应用程序调用回调函数超时。
本申请实施例提供的原生应用程序调用装置为能实现上述应用于第一设备的原生应用程序调用方法的各实施例的各个过程,技术特征一一对应,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的原生应用程序调用装置可以是装置,也可以是电子设备中的部件、集成电路、或芯片。
请参见图5,图5是本申请实施例提供的一种原生应用程序调用装置的结构图,如图5所示,原生应用程序调用装置500包括:
接收模块501,用于接收目标信息,所述目标信息用于调用所述原生应用程序进行操作;
处理模块502,用于基于所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应;
发送模块503,用于向第一设备发送针对所述目标信息的回复信息。
在一个实施例中,所述接收模块501包括:
第一接收单元,用于在所述第二设备为安卓系统的情况下,通过所述桥接收所述第一设备发送所述目标信息;
第二接收单元,用于在所述第二设备为ios系统的情况下,接收所述第一设备发送所述目标信息。
在一个实施例中,所述桥中应用有公共函数;所述接收模块501包括:
第三接收单元,用于接收所述公共函数和中间数据,所述中间数据为所述第一设备对所述目标信息进行加密得到的数据;
解析单元,用于基于所述公共函数对所述中间数据解析,得到所述目标信息。
在一个实施例中,所述桥中应用有回调函数;所述回复信息为所述原生应用程序调用所述回调函数对所述目标操作的结果进行处理得到的信息。
在一个实施例中,所述桥中还应用有承诺函数;
所述发送模块503包括:
第一处理单元,用于基于所述原生应用程序调用所述回调函数对所述目标操作的结果进行处理,得到所述回复信息;
第二处理单元,用于基于所述原生应用程序调用所述桥中的承诺函数对所述回复信息处理,得到目标全局变量;
第三处理单元,用于将所述目标全局变量添加至全局变量队列,以使所述第一设备对所述全局变量队列中的所述目标全局变量解析,得到回复信息。
在一个实施例中,所述回复信息用于表示所述原生应用程序根据所述目标信息执行目标操作失败;
所述回复信息是存储在所述桥上,且被所述第二设备获取得到的信息,所述回复信息包括如下至少一项信息:
第一信息,用于表征所述目标信息调用的目标操作不在所述原生应用程序中;
第二信息,用于表征所述目标信息调用的不是一个操作;
第三信息,用于表征唤起所述原生应用程序失败;
第四信息,用于表征基于所述原生应用程序调用回调函数错误;
第五信息,用于表征基于所述原生应用程序调用回调函数超时。
本申请实施例提供的原生应用程序调用装置为能实现上述应用于第二设备的原生应用程序调用方法的各实施例的各个过程,技术特征一一对应,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的原生应用程序调用装置可以是装置,也可以是电子设备中的部件、集成电路、或芯片。
本申请实施例还提供一种电子设备,参见图6,图6是本申请实施提供的一种电子设备的结构示意图,电子设备包括存储器601、处理器602和存储在存储器601上运行的程序6021或者指令,该程序6021或者指令被处理器602执行时可实现图1对应的方法实施例中的任意步骤及达到相同的有益效果,或者,实现图3对应的方法实施例中的任意步骤及达到相同的有益效果,此处不再赘述。
其中,处理器602可以是中央处理单元(Central Processing Unit,CPU)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或图形处理单元(Graphics Processing Unit,GPU)。
本领域普通技术人员可以理解实现上述实施例方法的全部或者部分步骤是可以通过程序指令相关的硬件来完成,所述的程序可以存储于一可读取介质中。
本申请实施例还提供一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现上述图1对应的方法实施例中的任意步骤,且能达到相同的技术效果,或者,实现上述图3对应的方法实施例中的任意步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。所述的存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,本申请中使用“和/或”表示所连接对象的至少其中之一,例如A和/或B和/或C,表示包含单独A,单独B,单独C,以及A和B都存在,B和C都存在,A和C都存在,以及A、B和C都存在的7种情况。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者第二终端设备等)执行本申请各个实施例的方法。
上面结合附图对本申请的实施例进行描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (12)

1.一种原生应用程序调用方法,应用于第一设备,所述第一设备通过桥与应用有原生应用程序的第二设备通信,其特征在于,包括:
获取目标信息,所述目标信息用于调用所述原生应用程序进行操作;
向所述第二设备发送所述目标信息,以使所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应;
通过所述桥接收所述第二设备发送的针对所述目标信息的回复信息。
2.根据权利要求1所述的方法,其特征在于,所述向所述第二设备发送所述目标信息,包括如下至少一项:
在所述第二设备为安卓系统的情况下,通过所述桥向所述第二设备发送所述目标信息;
在所述第二设备为ios系统的情况下,向所述第二设备发送所述目标信息。
3.根据权利要求2所述的方法,其特征在于,所述桥中应用有公共函数;所述通过所述桥向所述第二设备发送所述目标信息,包括:
将所述目标信息进行加密,得到中间数据;
基于所述桥将所述公共函数和所述中间数据发送至所述第二设备,以使所述原生应用程序基于所述公共函数对所述中间数据解析,得到所述目标信息。
4.根据权利要求1所述的方法,其特征在于,所述桥中应用有回调函数;所述回复信息为所述原生应用程序调用所述回调函数对所述目标操作的结果进行处理得到的信息。
5.根据权利要求4所述的方法,其特征在于,所述桥中还应用有承诺函数;
所述通过所述桥接收所述第二设备发送的针对所述目标信息的回复信息,包括:
读取全局变量队列,得到目标全局变量,所述目标全局变量为所述原生应用程序调用所述回调函数对所述目标操作的结果进行处理,得到所述回复信息之后,所述原生应用程序调用所述桥中的承诺函数,对所述回复信息处理,并将处理后的回复信息添加至全局变量队列的变量;
对所述目标全局变量解析,得到回复信息。
6.根据权利要求1所述的方法,其特征在于,所述回复信息用于表示所述原生应用程序根据所述目标信息执行目标操作失败;
所述回复信息是存储在所述桥上,且被所述第二设备获取得到的信息,所述回复信息包括如下至少一项信息:
第一信息,用于表征所述目标信息调用的目标操作不在所述原生应用程序中;
第二信息,用于表征所述目标信息调用的不是一个操作;
第三信息,用于表征唤起所述原生应用程序失败;
第四信息,用于表征基于所述原生应用程序调用回调函数错误;
第五信息,用于表征基于所述原生应用程序调用回调函数超时。
7.一种原生应用程序调用方法,应用于第二设备,所述第二设备应用的原生应用程序通过桥与第一设备通信,其特征在于,包括:
接收目标信息,所述目标信息用于调用所述原生应用程序进行操作;
基于所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应;
通过所述桥向所述第一设备发送针对所述目标信息的回复信息。
8.根据权利要求7所述的方法,其特征在于,所述接收目标信息,包括:
在所述第二设备为安卓系统的情况下,通过所述桥接收所述第一设备发送所述目标信息;
在所述第二设备为ios系统的情况下,接收所述第一设备发送所述目标信息。
9.一种原生应用程序调用装置,其特征在于,包括:
获取模块,用于获取目标信息,所述目标信息用于调用所述原生应用程序进行操作;
发送模块,用于向第二设备发送所述目标信息,以使所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应;
接收模块,用于通过桥接收所述第二设备发送的针对所述目标信息的回复信息。
10.一种原生应用程序调用装置,其特征在于,包括:
接收模块,用于接收目标信息,所述目标信息用于调用所述原生应用程序进行操作;
处理模块,用于基于所述原生应用程序根据所述目标信息执行目标操作,所述目标操作与所述目标信息对应;
发送模块,用于向第一设备发送针对所述目标信息的回复信息。
11.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的原生应用程序调用方法中的步骤,或者,实现如权利要求7至8中任一项所述的原生应用程序调用方法中的步骤。
12.一种可读存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现如权利要求1至6中任一项所述的原生应用程序调用方法中的步骤,或者,实现如权利要求7至8中任一项所述的原生应用程序调用方法中的步骤。
CN202311842880.2A 2023-12-29 2023-12-29 原生应用程序调用方法、装置、电子设备及可读存储介质 Active CN117492968B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311842880.2A CN117492968B (zh) 2023-12-29 2023-12-29 原生应用程序调用方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311842880.2A CN117492968B (zh) 2023-12-29 2023-12-29 原生应用程序调用方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN117492968A true CN117492968A (zh) 2024-02-02
CN117492968B CN117492968B (zh) 2024-04-09

Family

ID=89669307

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311842880.2A Active CN117492968B (zh) 2023-12-29 2023-12-29 原生应用程序调用方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117492968B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296298B1 (en) * 2018-01-25 2019-05-21 Walmart Apollo, Llc Systems and methods for cross platform information exchange mechanism for integrating web-based components with a native application
US20190227794A1 (en) * 2018-01-25 2019-07-25 Walmart Apollo, Llc Systems and methods for real time version control for integrating updated web-based components with a native application
CN110990167A (zh) * 2019-11-26 2020-04-10 网易(杭州)网络有限公司 前端通信方法及装置、存储介质及电子设备
CN115840590A (zh) * 2022-11-23 2023-03-24 重庆长安汽车股份有限公司 基于安卓和ios跨端混合的方法、系统、设备及存储介质
CN117041234A (zh) * 2023-08-16 2023-11-10 九恒星(武汉)信息技术有限公司 web端与原生端的交互方法及终端设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296298B1 (en) * 2018-01-25 2019-05-21 Walmart Apollo, Llc Systems and methods for cross platform information exchange mechanism for integrating web-based components with a native application
US20190227794A1 (en) * 2018-01-25 2019-07-25 Walmart Apollo, Llc Systems and methods for real time version control for integrating updated web-based components with a native application
CN110990167A (zh) * 2019-11-26 2020-04-10 网易(杭州)网络有限公司 前端通信方法及装置、存储介质及电子设备
CN115840590A (zh) * 2022-11-23 2023-03-24 重庆长安汽车股份有限公司 基于安卓和ios跨端混合的方法、系统、设备及存储介质
CN117041234A (zh) * 2023-08-16 2023-11-10 九恒星(武汉)信息技术有限公司 web端与原生端的交互方法及终端设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHIJIE YANG: "WebViewJavascriptBridge与Android-IOS交互", pages 1 - 12, Retrieved from the Internet <URL:https://yshijie.github.io/2017/12/15/WebViewJavascriptBridge%E4%B8%8EAndroid-IOS%E4%BA%A4%E4%BA%92> *

Also Published As

Publication number Publication date
CN117492968B (zh) 2024-04-09

Similar Documents

Publication Publication Date Title
CN108345531B (zh) 一种测试方法、装置及系统
US11237844B2 (en) Method and apparatus for loading kernel module
GB2589658A (en) Method and apparatus for running an applet
CN109376088B (zh) 一种自动化测试系统及自动化测试方法
CN113672405B (zh) 数据交互系统和基于数据交互系统的页面展示方法
CN110377440B (zh) 信息处理方法和装置
CN110007936B (zh) 数据处理方法和装置
CN114416075A (zh) 业务处理方法及装置
CN113157274B (zh) 基于微前端的软件开发方法、装置、电子设备及存储介质
CN111382084A (zh) 测试方法、装置和电子设备
CN107273226B (zh) 在安卓系统中集成组件及调用被集成组件的方法和装置
CN104503768A (zh) 一种应用程序编程接口调用方法及设备
CN111414154A (zh) 前端开发的方法、装置、电子设备和存储介质
CN117492968B (zh) 原生应用程序调用方法、装置、电子设备及可读存储介质
CN106095886B (zh) 一种数据处理方法及其装置
CN111158661A (zh) 系统接口对接方法、装置、介质及电子设备
CN115629976A (zh) 一种内核测试方法、装置和存储介质
CN115834559A (zh) 服务调用方法、装置、电子设备、存储介质及程序产品
CN112073462B (zh) 定位方法及装置
CN112540804B (zh) 小程序运行方法及装置、电子设备、介质
CN113918245A (zh) 一种数据调用方法、装置、设备及计算机可读存储介质
CN114968015A (zh) 一种信息交互、控制网络通信模块的方法、装置及介质
CN112714148A (zh) 一种界面配置方法、装置、设备及介质
CN113760707A (zh) 接口测试方法、装置、设备及计算机可读存储介质
CN113704079A (zh) 基于Protobuf的接口测试方法和装置

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