CN117041234A - web端与原生端的交互方法及终端设备 - Google Patents
web端与原生端的交互方法及终端设备 Download PDFInfo
- Publication number
- CN117041234A CN117041234A CN202311037871.6A CN202311037871A CN117041234A CN 117041234 A CN117041234 A CN 117041234A CN 202311037871 A CN202311037871 A CN 202311037871A CN 117041234 A CN117041234 A CN 117041234A
- Authority
- CN
- China
- Prior art keywords
- terminal
- web
- call request
- native
- interaction
- 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.)
- Pending
Links
- 230000003993 interaction Effects 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000006870 function Effects 0.000 claims description 89
- 230000002452 interceptive effect Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 8
- 238000011161 development Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种web端与原生端的交互方法及终端设备,涉及计算机技术领域。该终端设备运行有目标APP的web端与原生端,操作系统下挂载有JSBridge,JSBridge的名称是动态的,且名称由原生端赋予,该方法包括:获取来自web端的第一调用请求;根据回调函数,为当前次交互分配交互标识;向原生端发送第二调用请求;获取原生端进行回调的第三调用请求;根据第三调用请求中携带的交互标识,确定原生端的回调对象为web端,并向web端发送执行结果。基于此方法,可以提高web端与原生端之间交互的安全性,降低信息泄露的风险。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种web端与原生端的交互方法及终端设备。
背景技术
在目前这个信息时代,应用程序(application,APP)在各个领域都得到了越来越广泛的应用。目前常用的APP可以分为原生(native)APP和web APP。其中,原生APP是利用开发语言进行开发的APP,可以直接运行在操作系统上,例如Android平台利用java语言进行开发,iOS平台利用Object-C语言进行开发。而web APP是利用web编程语言进行开发的APP,可以运行在浏览器上。
原生APP可以快速调用设备的接口,运行速度较快,用户的使用体验更好,然而开发周期长;而web APP的开发周期短,更有利于提供业务的及时更新能力,然而运行速度慢,用户的使用体验不佳。
因此,APP开发考虑使用原生与web结合的混合开发(hybrid)模式,这种混合开发模式开发的APP综合了以上原生APP和web APP的优点。但是原生APP与web APP的开发平台不一致,因此需要一种交互方式,打通APP的原生端和web端,使原生端和web端可以互相传递数据。
其中,JSBridge是一种实现APP的原生端和web端的交互的机制。目前,web端在通过JSBridge调用与原生端相关的函数时,一般会通过JSBridge中的一个固定的对象来调用函数,而第三方也有可能通过这个对象来调用函数,有造成信息的泄露的风险。
发明内容
本申请提供了一种web端与原生端的交互方法及终端设备,以期提高web端与原生端之间交互的安全性,降低信息泄露的风险。
第一方面,本申请提供了一种web端与原生端的交互方法,应用于终端设备,终端设备运行有目标APP的web端与原生端,终端设备的操作系统下挂载有原生端对应的JSBridge,JSBridge的名称是动态的,且名称由原生端赋予,web端通过JSBridge调用原生端中的函数,该方法包括:获取来自web端的第一调用请求,第一调用请求中携带有目标函数、传递的参数和回调函数;根据回调函数,为当前次交互分配交互标识;向原生端发送第二调用请求,以使web端调用原生端中的函数,第二调用请求中携带有目标函数、传递的参数和交互标识;获取原生端进行回调的第三调用请求,第三调用请求携带有执行结果和交互标识,执行结果为原生端根据传递的参数执行目标函数得到的结果;根据第三调用请求中携带的交互标识,确定原生端的回调对象为web端,并向web端发送执行结果。
本申请提供的web端与原生端的交互方法,通过对JSBridge赋予动态名称,防止第三方通过查找JSBridge的名称的方式调用函数,而且根据JSBridge为此次交互分配的交互标识,向web端返回交互的执行结果,而并非通过回调函数直接进行交互。基于此方法,可以提高web端与原生端之间交互的安全性,降低信息泄露的风险。
结合第一方面,在第一方面的某些可能的实现方式中,JSBridge是在加载web端的入口前,由原生端注册并挂载到终端设备的操作系统中的。
结合第一方面,在第一方面的某些可能的实现方式中,在获取来自web端的第一调用请求之前,该方法还包括:向web端发送JSBridgeEvent事件,以通知web端,JSBridge可以使用。
结合第一方面,在第一方面的某些可能的实现方式中,在向原生端发送第二调用请求之前,该方法还包括:将目标函数、传递的参数和交互标识均转换为字符串;将目标函数的字符串、传递的参数的字符串和交互标识的字符串进行拼接,得到第二调用请求。
结合第一方面,在第一方面的某些可能的实现方式中,在执行结果为文件的情况下,web端基于URL scheme拦截的方式获取执行结果。
第二方面,本申请提供了一种终端设备,包括收发模块和处理模块;收发模块用于,获取来自web端的第一调用请求,第一调用请求中携带有目标函数、传递的参数和回调函数;处理模块用于根据回调函数,为当前次交互分配交互标识;收发模块还用于,向原生端发送第二调用请求,以使web端调用原生端中的函数,第二调用请求中携带有目标函数、传递的参数和交互标识;获取原生端进行回调的第三调用请求,第三调用请求携带有执行结果和交互标识,执行结果为原生端根据传递的参数执行目标函数得到的结果;根据第三调用请求中携带的交互标识,确定原生端的回调对象为web端,并向web端发送执行结果。
结合第二方面,在第二方面的某些可能的实现方式中,收发模块还用于,向web端发送JSBridgeEvent事件,以通知web端,JSBridge可以使用。
结合第二方面,在第二方面的某些可能的实现方式中,处理模块还用于,将目标函数、传递的参数和交互标识均转换为字符串;将目标函数的字符串、传递的参数的字符串和交互标识的字符串进行拼接,得到第二调用请求。
第三方面,本申请提供了一种终端设备,包括存储器和处理器,存储器用于存储计算机程序;处理器用于执行计算机程序,以执行第一方面以及第一方面任意一种可能的实现方式中的方法。
第四方面,本申请提供了一种计算机可读存储介质,包括计算机程序,当计算机程序在计算机上运行时,使得第一方面以及第一方面任一种可能实现方式中的方法被执行。
第五方面,本申请提供了一种计算机程序产品,包括计算机程序,当计算机程序在计算机上运行时,使得第一方面以及第一方面任一种可能实现方式中的方法被执行。
应当理解的是,本申请的第二方面至第五方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请实施例提供的web端与原生端的交互方法的应用场景示意图;
图2是本申请实施例提供的web端与原生端的交互方法的示意性流程图;
图3是本申请实施例提供的web端与原生端的交互方法的交互流程图;
图4是本申请实施例提供的终端设备的示意性框图;
图5是本申请实施例提供的终端设备的另一示意性框图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中,术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”以及任何变形,意图在于覆盖不排他的包含。
图1是本申请实施例提供的web端与原生端的交互方法的应用场景示意图。
在生活中,用户会使用各种终端设备,例如智能手机、平板电脑等。这些终端设备上运行有APP,用户可以使用APP来进行娱乐、通信或办公等操作。
目前常用的APP可以分为原生APP和web APP,这两种APP有各自的优点及缺点,原生APP可以快速调用设备的接口,运行速度较快,用户的使用体验更好,然而开发周期长;而web APP的开发周期短,更有利于提供业务的及时更新能力,然而运行速度慢,用户的使用体验不佳。
因此,APP开发可以使用原生与web结合的混合开发模式,即,在一个APP中具有原生端和web端,这种混合开发模式得到的APP综合了原生APP和web APP的优点。
JSBridge是一种实现APP的原生端和web端的交互的机制。目前,web端在通过JSBridge调用与原生端相关的函数时,一般会通过JSBridge中的一个固定的对象来调用函数,而第三方也有可能通过这个对象来调用函数,有造成信息的泄露的风险。
鉴于此,本申请提供了一种web端与原生端的交互方法,通过对JSBridge赋予动态名称,防止第三方通过查找JSBridge的名称的方式调用函数,而且根据JSBridge为此次交互分配的交互标识,向web端返回交互的执行结果,而并非通过回调函数直接进行交互。基于此方法,可以提高web端与原生端之间交互的安全性,降低信息泄露的风险。
图2是本申请实施例提供的web端与原生端的交互方法的示意性流程图,该方法应用于终端设备,该终端设备运行有目标APP的web端和原生端,该终端设备的操作系统下挂载有原生端对应的JSBridge,该JSBridge的名称是动态的,且名称由原生端赋予,web端通过JSBridge调用原生端中的函数。该方法200包括步骤210至步骤250,下面对方法200中各个步骤作详细说明。
在步骤210中,获取来自web端的第一调用请求,第一调用请求中携带有目标函数、传递的参数和回调函数。
其中,目标函数是web端响应于用户的操作,要从原生端调用的函数,目标函数为目标APP内web端和原生端约定好的功能函数,可以用于实现具体的功能,例如获取服务信息、跳转功能页面、下载附件并预览或者调用服务接口等;传递的参数是web端在本次调用的过程中向原生端传递的参数;回调函数是原生端在执行完目标函数之后对web端进行回调的函数。
可选地,第一调用请求中还可以包括一个撤销函数,这个撤销函数可用于终止此次web端对原生端的调用。
应理解,由于最初web端并不知道JSBridge是否可以使用,因此,在获取来自web端的第一调用请求之前,可以向web端发送JSBridgeEvent事件,以通知web端,JSBridge可以使用。
而web端在接收到JSBridgeEvent事件之后,可以根据该JSBridgeEvent事件,向对应的JSBridge发送第一调用请求。
这里的JSBridge是在web端的入口被加载前,由原生端注册并挂载到终端设备的操作系统中的。
一种可能的实现方式是,在web端的入口被加载前,原生端从动态库中获取JS脚本,然后根据该JS脚本注册JSBridge,并将JSBridge挂载到超文本标记语言(hyper textmarkup language,HTML)环境中的window对象。注册JSBridge的操作具体可以由浏览器内核来执行。
虽然在web端的入口被加载前,原生端就已经在执行根据JS脚本注册JSBridge的操作,但是有可能web端的入口加载完成后,JSBridge还没有注册成功。因此,设置web端在接收到JSBridgeEvent事件之后才可以发送第一调用请求,有利于
原生端从动态库中获取JS脚本的动作,需要校验该目标APP的签名是否与动态库中保存的签名一致。校验签名的操作有利于提高使用JSBridge的安全性。
在步骤220中,根据回调函数,为当前次交互分配交互标识。
在调用过程中,JSBridge可以根据回调函数为当前次交互分配交互标识,这个交互标识被JSBridge上的内置对象messageCallBacks4Native持有,可用于在原生端执行完调用函数之后,通过交互标识来查找回调函数,进而回传执行结果。
在步骤230中,向原生端发送第二调用请求,以使web端调用原生端中的函数,第二调用请求中携带有目标函数、传递的参数和交互标识。
JSBridge第一调用请求中的回调函数替换为了交互标识,得到第二调用请求,并将第二调用请求发送至原生端。
JSBridge在发送第二调用请求之前,可以对第二调用请求进行预处理,在预处理的过程中,将第二调用请求转换为字符串形式。即,将目标函数、传递的参数和交互标识均转换为字符串,并将目标函数的字符串、传递的参数的字符串和交互标识的字符串进行拼接,得到第二调用请求。
第二调用请求的传递可以基于JavaScript Interface的方式,转换为字符串形式有利于通过这种方式传递第二调用请求。基于JavaScript Interface的方式,相比于URLscheme拦截的方式来说,信息传递的速度更快。
在步骤240中,获取原生端进行回调的第三调用请求,第三调用请求携带有执行结果和交互标识,执行结果为原生端根据传递的参数执行目标函数得到的结果。
原生端在接收到第二调用请求后,根据目标函数的方法名在数据库或者动态库中寻找调用方法,找到调用方法后根据根据传递的参数执行该调用方法对应的操作,得到执行结果。然后向JSBridge发送第三调用请求,该第三调用请求中包括执行结果和交互标识。
在步骤250中,根据第三调用请求中携带的交互标识,确定原生端的回调对象为web端,并向web端发送执行结果。
JSBridge在接收到第三调用请求后,根据交互标识在内置对象messageCallBacks4Native中查找对应的回调函数,进而根据回调函数确定回调对象为web端。JSBridge可以将执行结果发送给web端,完成本次交互。
可选地,在执行结果为文件的情况下,web端基于URL scheme拦截的方式获取执行结果。
基于URL scheme拦截的方式,这种方式需要进行URL编解码,性能较低,而且信息传递的速度比基于JavaScript Interface的方式要慢,但这种方式适合传递文件或者数据流形式的信息。
但需要注意的是,URL scheme拦截的方式对传输的数据长度有限制,在传输的数据量较大的情况下,需要对传输的数据做切割并分段传输。
URL scheme拦截的方式被应用于web端访问原生端的文件时,可以通过拦截特殊的URL scheme,直接从web容器中获取目标文件。
另外,URL scheme拦截的方式还被应用于web离线资源缓存,静态的离线资源只需在网络上获取一次,后续不需要再从网络获取,因此大大提升了web端的渲染速度。
URL scheme中包括路径头、编码后的参数和交互标识,在web端通过URL scheme拦截的方式获取执行结果时,可以对URL scheme做正则匹配,来确定执行结果的内容形式,进而决定是从网络加载执行结果还是响应于代码生成执行结果。
图3是本申请实施例提供的web端与原生端的交互方法的交互流程图。
原生端从动态库中获取JS脚本,然后根据该JS脚本注册JSBridge,并挂载到终端设备的操作系统中。
JSBridge注册完成后,向web端发送JSBridgeEvent事件,以通知web端,JSBridge可以使用。
原生端注册JSBridge之后,可以向JSBridge提供调用方法,并加载web页面。
响应于用户在web端的操作,web端可以向JSBridge发送第一调用请求,第一调用请求中携带有目标函数、传递的参数和回调函数。
JSBridge根据回调函数,为当前次交互分配交互标识,得到第二调用请求,并进行预处理,将第二调用请求转换为字符串的形式。
JSBridge向原生端发送第二调用请求,第二调用请求中携带有目标函数、传递的参数和交互标识。
原生端在接收到第二调用请求后,根据目标函数的方法名在数据库或者动态库中寻找调用方法,找到调用方法后根据传递的参数执行该调用方法对应的操作,得到执行结果。
原生端向JSBridge发送第三调用请求,第三调用请求中携带有执行结果和交互标识。
根据第三调用请求中携带的交互标识,找到回调函数,确定原生端的回调对象为web端,并向web端发送执行结果,完成本次交互。
本申请提供的web端与原生端的交互方法,通过对JSBridge赋予动态名称,防止第三方通过查找JSBridge的名称的方式调用函数,而且根据JSBridge为此次交互分配的交互标识,向web端返回交互的执行结果,而并非通过回调函数直接进行交互。基于此方法,可以提高web端与原生端之间交互的安全性,降低信息泄露的风险。
图4是本申请实施例提供的终端设备的示意性框图。该终端设备可以为图1中的终端设备,如图4所示,该终端设备400可以包括收发模块410和处理模块420。
其中,收发模块410用于,获取来自web端的第一调用请求,第一调用请求中携带有目标函数、传递的参数和回调函数;处理模块420用于根据回调函数,为当前次交互分配交互标识;收发模块410还用于,向原生端发送第二调用请求,以使web端调用原生端中的函数,第二调用请求中携带有目标函数、传递的参数和交互标识;获取原生端进行回调的第三调用请求,第三调用请求携带有执行结果和交互标识,执行结果为原生端根据传递的参数执行目标函数得到的结果;根据第三调用请求中携带的交互标识,确定原生端的回调对象为web端,并向web端发送执行结果。
可选地,收发模块410还用于,向web端发送JSBridgeEvent事件,以通知web端,JSBridge可以使用。
可选地,处理模块420还用于,将目标函数、传递的参数和交互标识均转换为字符串;将目标函数的字符串、传递的参数的字符串和交互标识的字符串进行拼接,得到第二调用请求。
图5是本申请实施例提供的终端设备的另一示意性框图。如图5所示,该终端设备500可以包括至少一个处理器510,可用于实现本申请提供的web端与原生端的交互方法中终端设备的功能。具体参见方法实施例中的详细描述,此处不做赘述。
该终端设备500还可以包括一个存储器520,用于存储程序指令和/或数据。存储器520和处理器510耦合。本申请中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器510可能和存储器520协同操作。处理器510可能执行存储器520中存储的程序指令。至少一个存储器520中的至少一个可以包括于处理器510中。
该终端设备500还可以包括一个通信接口530,用于通过传输介质和其它设备进行通信,从而用于终端设备500中的装置可以和其它设备进行通信。通信接口530例如可以是收发器、接口、总线、电路或者能够实现收发功能的装置。处理器510可利用通信接口530收发数据和/或信息,并用于实现图2或图3对应的实施例中的web端与原生端的交互方法。
本申请中不限定上述处理器510、存储器520以及通信接口530之间的具体连接介质。本申请在图5中以处理器510、存储器520以及通信接口530之间通过总线540连接。总线540在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
根据本申请提供的方法,本申请还提供一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行图2或图3对应的实施例中的web端与原生端的交互方法。
根据本申请提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码。当该计算机程序代码在计算机上运行时,使得该计算机执行图2或图3对应的实施例中的web端与原生端的交互方法。
本申请提供的技术方案可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、网络设备、终端设备或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线,例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质例如,数字视频光盘(digitalvideo disc,DVD)、或者半导体介质等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种web端与原生端的交互方法,其特征在于,应用于终端设备,所述终端设备运行有目标APP的web端与原生端,所述终端设备的操作系统下挂载有所述原生端对应的JSBridge,所述JSBridge的名称是动态的,且所述名称由所述原生端赋予,所述web端通过所述JSBridge调用所述原生端中的函数,所述方法包括:
获取来自所述web端的第一调用请求,所述第一调用请求中携带有目标函数、传递的参数和回调函数;
根据所述回调函数,为当前次交互分配交互标识;
向所述原生端发送第二调用请求,以使所述web端调用所述原生端中的函数,所述第二调用请求中携带有所述目标函数、所述传递的参数和所述交互标识;
获取所述原生端进行回调的第三调用请求,所述第三调用请求携带有执行结果和所述交互标识,所述执行结果为所述原生端根据所述传递的参数执行所述目标函数得到的结果;
根据所述第三调用请求中携带的交互标识,确定所述原生端的回调对象为所述web端,并向所述web端发送所述执行结果。
2.根据权利要求1所述的方法,其特征在于,所述JSBridge是在加载所述web端的入口前,由所述原生端注册并挂载到所述终端设备的操作系统中的。
3.根据权利要求1所述的方法,其特征在于,在所述获取来自所述web端的第一调用请求之前,所述方法还包括:
向所述web端发送JSBridgeEvent事件,以通知所述web端,所述JSBridge可以使用。
4.根据权利要求1所述的方法,其特征在于,在所述向所述原生端发送第二调用请求之前,所述方法还包括:
将所述目标函数、所述传递的参数和所述交互标识均转换为字符串;
将所述目标函数的字符串、所述传递的参数的字符串和所述交互标识的字符串进行拼接,得到所述第二调用请求。
5.根据权利要求1所述的方法,其特征在于,在所述执行结果为文件的情况下,所述web端基于URL scheme拦截的方式获取所述执行结果。
6.一种终端设备,其特征在于,包括:
收发模块,用于获取来自web端的第一调用请求,所述第一调用请求中携带有目标函数、传递的参数和回调函数;
处理模块,用于根据所述回调函数,为当前次交互分配交互标识;
所述收发模块还用于,向原生端发送第二调用请求,以使所述web端调用所述原生端中的函数,所述第二调用请求中携带有所述目标函数、所述传递的参数和所述交互标识;获取所述原生端进行回调的第三调用请求,所述第三调用请求携带有执行结果和所述交互标识,所述执行结果为所述原生端根据所述传递的参数执行所述目标函数得到的结果;根据所述第三调用请求中携带的交互标识,确定所述原生端的回调对象为所述web端,并向所述web端发送所述执行结果。
7.根据权利要求6所述的终端设备,其特征在于,
所述收发模块还用于,向所述web端发送JSBridgeEvent事件,以通知所述web端,所述JSBridge可以使用。
8.根据权利要求6所述的终端设备,其特征在于,
所述处理模块还用于,将所述目标函数、所述传递的参数和所述交互标识均转换为字符串;将所述目标函数的字符串、所述传递的参数的字符串和所述交互标识的字符串进行拼接,得到所述第二调用请求。
9.一种终端设备,其特征在于,包括存储器和处理器,其中,
所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,以实现如权利要求1至5中任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至5中任一项所述的方法。
11.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被运行时,使得计算机执行如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311037871.6A CN117041234A (zh) | 2023-08-16 | 2023-08-16 | web端与原生端的交互方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311037871.6A CN117041234A (zh) | 2023-08-16 | 2023-08-16 | web端与原生端的交互方法及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117041234A true CN117041234A (zh) | 2023-11-10 |
Family
ID=88644584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311037871.6A Pending CN117041234A (zh) | 2023-08-16 | 2023-08-16 | web端与原生端的交互方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117041234A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492968A (zh) * | 2023-12-29 | 2024-02-02 | 中移(苏州)软件技术有限公司 | 原生应用程序调用方法、装置、电子设备及可读存储介质 |
-
2023
- 2023-08-16 CN CN202311037871.6A patent/CN117041234A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492968A (zh) * | 2023-12-29 | 2024-02-02 | 中移(苏州)软件技术有限公司 | 原生应用程序调用方法、装置、电子设备及可读存储介质 |
CN117492968B (zh) * | 2023-12-29 | 2024-04-09 | 中移(苏州)软件技术有限公司 | 原生应用程序调用方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111600909A (zh) | 数据处理方法、装置、协议转换设备及存储介质 | |
US20120227032A1 (en) | Method, apparatus, and system for invoking widget | |
CN109240697B (zh) | 调用处理方法及装置、存储介质 | |
CN110365724B (zh) | 任务处理方法、装置及电子设备 | |
CN108494762A (zh) | 网页访问方法、装置及计算机可读存储介质、终端 | |
CN112954717B (zh) | 基于h5页面的家电配网方法和装置 | |
CN117041234A (zh) | web端与原生端的交互方法及终端设备 | |
CN112836152A (zh) | 页面渲染方法、系统、计算机设备及计算机可读存储介质 | |
CN114598750B (zh) | 一种数据请求处理方法、装置及存储介质 | |
US20220245080A1 (en) | Method for communication of a componentized application, computing device and computer storage medium | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
US9164817B2 (en) | Mobile communication terminal to provide widget expansion function using message communication, and operation method of the mobile communication terminal | |
CN109683992B (zh) | 用于管理对象的方法和装置 | |
CN103647763A (zh) | 一种移动终端广告调用方法和系统 | |
CN114024822B (zh) | 基于区块链的物联网设备管理方法、设备、服务器及介质 | |
CN117441163A (zh) | 应用程序的自动化测试方法及装置 | |
CN111459819B (zh) | 软件测试方法及装置、电子设备、计算机可读介质 | |
CN114301970A (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN113746851A (zh) | 一种支持实时解析grpc请求的代理系统和方法 | |
CN112000313A (zh) | 请求响应方法、装置、设备及存储介质 | |
CN112182083A (zh) | 文件生成方法、装置、设备及存储介质 | |
CN104965909A (zh) | 一种动态web内容的请求处理方法 | |
CN116991816B (zh) | 日志输出方法、装置、电子设备和存储介质 | |
CN111090485B (zh) | 面向多集群的帮助数据处理方法及装置、介质和设备 | |
CN114422166A (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 |