CN107450946B - Chrome网页与终端软件通讯方法、设备及存储介质 - Google Patents

Chrome网页与终端软件通讯方法、设备及存储介质 Download PDF

Info

Publication number
CN107450946B
CN107450946B CN201710606398.7A CN201710606398A CN107450946B CN 107450946 B CN107450946 B CN 107450946B CN 201710606398 A CN201710606398 A CN 201710606398A CN 107450946 B CN107450946 B CN 107450946B
Authority
CN
China
Prior art keywords
chrome
webpage
local
script
extension
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
CN201710606398.7A
Other languages
English (en)
Other versions
CN107450946A (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201710606398.7A priority Critical patent/CN107450946B/zh
Priority to PCT/CN2017/100079 priority patent/WO2019019257A1/zh
Publication of CN107450946A publication Critical patent/CN107450946A/zh
Application granted granted Critical
Publication of CN107450946B publication Critical patent/CN107450946B/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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • 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/133Protocols for remote procedure calls [RPC]

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)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了Chrome网页与终端软件通讯方法、设备及存储介质,方法包括:检测到用户页面的连接本地程序请求时,则通过Chrome网页中插入的第一扩展脚本启动本地EXE进程;用户页面调用Chrome网页中的本地方法接口,通过第一扩展脚本将本地方法接口串流发送至本地EXE进程;EXE进程将本地方法执行后的消息串流返回至Chrome网页,Chrome网页将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本。本发明通过extension脚本作为Chrome浏览器和外部进程之间的通讯桥梁,并且引入自定义的方法和回调通讯协议,实现了Chrome页面对外部二进制代码的远程调用。

Description

Chrome网页与终端软件通讯方法、设备及存储介质
技术领域
本发明涉及计算机网络技术领域,尤其涉及Chrome网页与终端软件通讯方法、设备及存储介质。
背景技术
在PC平台上,为了能够在IE、Chrome、Firefox、Safari等网页浏览器中使用更多功能,软件开发者通常采用为浏览器开发和集成第三方插件的方法。NPAPI是一个跨平台的通用浏览器插件开发接口,由于Chrome、Firefox、Safari等浏览器的支持而被广泛使用。但因为Google近期发布的Chrome版本出于安全原因,永久关闭了对NPAPI接口的支持,使得在PC平台上以传统的第三方插件方式为Chrome开发软件功能变为不可能。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供Chrome网页与终端软件通讯方法、设备及存储介质,旨在解决现有技术中Chrome浏览器关闭了对NPAPI接口的支持,使得通过第三方插件方式为Chrome开发软件功能难以实现的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种Chrome网页与终端软件通讯方法,其中,所述方法包括以下步骤:
检测到用户页面的连接本地程序请求时,则通过Chrome网页中插入的第一扩展脚本启动本地EXE进程;
用户页面调用Chrome网页中的本地方法接口,通过第一扩展脚本将本地方法接口串流发送至本地EXE进程;
EXE进程将本地方法执行后的消息串流返回至Chrome网页, Chrome网页将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本。
所述Chrome网页与终端软件通讯方法,其中,所述检测到用户页面的连接本地程序请求时,则通过Chrome网页中插入的第一扩展脚本启动本地EXE进程的步骤中包括:
检测到用户页面由chrome.runtime.onMessageExternal()发送的连接本地程序请求时,则Chrome网页通过chrome.runtime.onMessageExternal()与第一扩展脚本建立通信连接;
第一扩展脚本通过chrome.runtime.connectNative()来启动本地EXE进程。
所述Chrome网页与终端软件通讯方法,其中,所述用户页面调用Chrome网页中的本地方法接口,通过第一扩展脚本将本地方法接口串流发送至本地EXE进程的步骤中包括:
用户页面通过chrome.runtime.sendMessage()调用Chrome网页的本地方法接口;
Chrome网页通过chrome.runtime.onMessageExternal()与第一扩展脚本建立通信连接;
第一扩展脚本通过portNative.postMessage()将本地方法接口串流发送EXE进程。
所述Chrome网页与终端软件通讯方法,其中,所述EXE进程将本地方法执行后的消息串流返回至Chrome网页, Chrome网页将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本的步骤中包括:
EXE进程通过portNative.postMessage()向第一扩展脚本返回本地方法执行后的消息串流;
第一扩展脚本通过chrome.tabs.sendMessage()与Chrome网页建立通信连接;
Chrome网页通过chrome.runtime.sendMessage()将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本;
第二扩展脚本通过User Page Notification向用户页面发送本地方法返回回调接口的第一通知信息。
所述Chrome网页与终端软件通讯方法,其中,所述EXE进程将本地方法执行后的消息串流返回至Chrome网页, Chrome网页将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本的步骤之后,还包括:
EXE进程中的本地进程退出,第二扩展脚本在接收到本地进程退出消息时向用户页面发送本地进程结束回调接口的第二通知信息。
所述Chrome网页与终端软件通讯方法,其中,所述EXE进程中的本地进程退出,第二扩展脚本在接收到本地进程退出消息时向用户页面发送本地进程结束回调接口的第二通知信息的步骤中包括:
EXE进程中的本地进程退出,通过portNative.onDisconnect()对第一扩展脚本进行通知;
第一扩展脚本通过chrome.tabs.sendMessage()对Chrome网页进行通知;
Chrome网页通过chrome.runtime.sendMessage()向第二扩展脚本发出本地进程退出消息;
第二扩展脚本通过User Page Notification向用户页面发送本地进程结束回调接口的第二通知信息。
所述Chrome网页与终端软件通讯方法,其中,所述第一扩展脚本为Background脚本;所述Background脚本为Chrome网页的扩展模块,通过Chrome网页的扩展程序打包成.crx文件,并安装到用户PC端的Chrome浏览器中。
所述Chrome网页与终端软件通讯方法,其中,所述第二扩展脚本为Content脚本;所述Content脚本为Chrome网页的扩展模块,通过Chrome网页的扩展程序打包成.crx文件,并安装到用户PC端的Chrome浏览器中。
一种Chrome网页与终端软件通讯设备,其中,所述Chrome网页与终端软件通讯设备包括处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的Chrome网页与终端软件通讯程序,以实现所述的Chrome网页与终端软件通讯方法的步骤。
一种存储介质,其中,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的Chrome网页与终端软件通讯方法的步骤。
有益效果:本发明提供的Chrome网页与终端软件通讯方法、设备及存储介质,通过Chrome浏览器开放的extension接口,开发extension脚本,用来作为Chrome浏览器和外部进程之间的通讯桥梁,并且引入一套自定义的方法和回调通讯协议,实现了Chrome页面对外部二进制代码的远程调用的方案。
附图说明
图1为本发明所述的Chrome网页与终端软件通讯方法较佳实施例的流程图。
图2为本发明所述的Chrome网页与终端软件通讯方法较佳实施例中步骤S100的流程图。
图3为本发明所述的Chrome网页与终端软件通讯方法较佳实施例中步骤S200的流程图。
图4为本发明所述的Chrome网页与终端软件通讯方法较佳实施例中步骤S300的流程图。
图5为本发明所述的Chrome网页与终端软件通讯方法较佳实施例中步骤S400的流程图。
图6为本发明所述的Chrome网页与终端软件通讯程序较佳实施例的运行环境示意图。
图7为本发明所述的Chrome网页与终端软件通讯程序较佳实施例的功能模块图。
具体实施方式
本发明提供Chrome网页与终端软件通讯方法、设备及存储介质,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1,是本发明所述的Chrome网页与终端软件通讯方法较佳实施例的流程图。如图1所示,所述Chrome网页与终端软件通讯方法,包括以下步骤:
步骤S100、检测到用户页面的连接本地程序请求时,则通过Chrome网页中插入的第一扩展脚本启动本地EXE进程。
本实施例中,所述用户页面即是User HTML,也是业务系统的用户页面。当用户在用户页面上操作发出连接PC端软件的连接本地程序请求时,则需要通过Chrome网页中插入的第一扩展脚本来启动PC端软件的本地EXE进程。
具体实施时,所述第一扩展脚本为Background脚本,也是Chrome浏览器中extension脚本的一种,即所述Background脚本为Chrome网页的扩展模块,通过Chrome网页的扩展程序打包成.crx文件,并安装到用户PC端的Chrome浏览器中。同样的,PC端软件的本地程序EXE同Chrome extension一样,安装到用户PC端并注册为ChromeNativeMessagingHosts,在页面脚本连接时作为Chrome的子进程启动,通过进程间管道与Chrome网页建立通讯。
所述第一扩展脚本可作为Chrome浏览器和外部进程之间的通讯桥梁,辅助Chrome浏览器对外部的二进制代码进行远程调用,使得在PC平台上以传统的插件方式为Chrome拓展页面功能变为不可能。
步骤S200、用户页面调用Chrome网页中的本地方法接口,通过第一扩展脚本将本地方法接口串流发送至本地EXE进程。
本实施中,当本地EXE进程启动后,需要调用本地方法接口,而本地方法接口是在Chrome网页中,用户界面需以发消息的方式来调用Chrome网页中的本地方法接口,再通过第一扩展脚本将本地方法接口串流发送至PC端软件的本地EXE进程。这样,再次应用了第一扩展脚本作为Chrome浏览器和外部进程之间的通讯桥梁。
步骤S300、EXE进程将本地方法执行后的消息串流返回至Chrome网页,Chrome网页将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本。
本实施例中,EXE进程接收到了本地方法接口后,会执行本地方法。在执行本地方法后得到消息串流,该消息串流需反馈至Chrome网页。此时,在Chrome网页根据消息串流得到与其对应的本地方法响应消息,本地方法响应消息被发送至第二扩展脚本。这样,在整个过程中应用了第一扩展脚本和第二扩展脚本来辅助Chrome浏览器对外部的二进制代码进行远程调用。
具体实施时,所述第二扩展脚本为Content脚本,也是Chrome浏览器中extension脚本的一种,即所述Content脚本为Chrome网页的扩展模块,通过Chrome网页的扩展程序打包成.crx文件,并安装到用户PC端的Chrome浏览器中。
同样的,所述第二扩展脚本可作为Chrome浏览器和外部进程之间的通讯桥梁,辅助Chrome浏览器对外部的二进制代码进行远程调用,使得在PC平台上以传统的插件方式为Chrome拓展页面功能变为不可能。
优选的,如图2所示,在所述Chrome网页与终端软件通讯方法中,所述步骤S100中包括:
步骤S101、检测到用户页面由chrome.runtime.onMessageExternal()发送的连接本地程序请求时,则Chrome网页通过chrome.runtime.onMessageExternal()与第一扩展脚本建立通信连接。
其中,chrome.runtime.onMessageExternal(),是一种用于接收事件的短连接,是消息从用户页面发送时开始产生,且chrome.runtime.onMessageExternal()不能在Content脚本中使用,而只能在background脚本中使用。
步骤S102、第一扩展脚本通过chrome.runtime.connectNative()来启动本地EXE进程。
其中,chrome.runtime.connectNative()是一种用于发送消息的长连接。NativeMessage通信机制是为了扩展与Host端的通信,为了实现Native Message机制通信,需要提前做以下准备:
1)Host端、扩展;
2)Host端的JSON文件,在这个文件中定义了Host应用的名称,并为其绑定了扩展ID。只有在这里绑定过的,才是合法的,才是可以进行通信;
3)Host端的JSON文件。在Windows平台下,Host端的JSON文件是写在了注册表中;Mac下,Host端的JSON文件则是放在了指定目录下。
优选的,如图3所示,在所述Chrome网页与终端软件通讯方法中,所述步骤S200中包括:
步骤S201、用户页面通过chrome.runtime.sendMessage()调用Chrome网页的本地方法接口。
其中,用户页面同样利用chrome.runtime.sendMessage()这一发送消息的短连接与Chrome网页建立连接,并从Chrome网页中获取本地方法接口。其中,本地方法接口用于调用或者被调用特定于本机硬件与操作系统的用其它语言编写的程序。用户页面对本地方法的调用为异步方式,即在调用方法中输入参数,在方法回调事件中输出参数。
步骤S202、Chrome网页通过chrome.runtime.onMessageExternal()与第一扩展脚本建立通信连接。
其中,chrome.runtime.onMessageExternal()是接收事件的短连接,Chrome网页通过chrome.runtime.onMessageExternal()这一短连接与第一扩展脚本建立通信连接。
步骤S203、第一扩展脚本通过portNative.postMessage()将本地方法接口串流发送EXE进程。
其中,portNative.postMessage()是一种本地消息机制,通过将浏览器所在客户端的本地应用注册为Chrome浏览器扩展的“本地消息主机(native messaging host)”,Chrome浏览器扩展还可以与客户端本地应用之间收发消息。客户端的本地应用注册为Chrome浏览器扩展的“本地消息主机”之后,Chrome浏览器会在独立的进程中启动该本地应用,并通过标准输入/输出流(stdin/stdout)进行消息通信。其中,输入/输出协议格式统一为:4字节长度+数据字节流。
优选的,如图4所示,在所述Chrome网页与终端软件通讯方法中,所述步骤S300中包括:
步骤S301、EXE进程通过portNative.postMessage()向第一扩展脚本返回本地方法执行后的消息串流。
在步骤S301中,同样采用portNative.postMessage()这一本地消息机制,将EXE进程的本地方法执行后的消息串流返回至第一扩展脚本。
步骤S302、第一扩展脚本通过chrome.tabs.sendMessage()与Chrome网页建立通信连接。
在步骤S302中,通过chrome.tabs.sendMessage()是一种后台发送消息给前台的一次性消息,更具体的是background脚本向content脚本发送一次性消息所必须建立的连接。
步骤S303、Chrome网页通过chrome.runtime.sendMessage()将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本。
在步骤S303中,Chrome网页与第二扩展脚本建立连接,与用户页面与Chrome网页建立连接一样,均是通过chrome.runtime.sendMessage()这一发送消息的短连接。
步骤S304、第二扩展脚本通过User Page Notification向用户页面发送本地方法返回回调接口的第一通知信息。
其中,User Page Notification就是用户页面通知,第二扩展脚本通过用户页面通知向用户页面发送本地方法返回回调接口的第一通知信息。因为之前调用了本地方法接口,此时需要本地方法返回回调接口。
优选的,如图1所示,在所述步骤S300之后,还包括:
步骤S400、EXE进程中的本地进程退出,第二扩展脚本在接收到本地进程退出消息时向用户页面发送本地进程结束回调接口的第二通知信息。
本实施例中,由于之前用户页面发出连接PC端软件的连接本地程序请求,且调用了本地方法接口,此时需将本地方法返回回调接口,同时也需要在本地进程结束后回调接口。通过步骤S400中进行的操作,就完成了一个完整的通讯过程,实现了Chrome页面对外部二进制代码的远程调用。
优选的,如图5所示,在所述Chrome网页与终端软件通讯方法中,所述步骤S400中包括:
步骤S401、EXE进程中的本地进程退出,通过portNative.onDisconnect()对第一扩展脚本进行通知。
其中,portNative.onDisconnect()是一种接收事件的长连接。EXE进程与第一扩展脚本建立长连接后,可接收由EXE进程发送的通知消息。
步骤S402、第一扩展脚本通过chrome.tabs.sendMessage()对Chrome网页进行通知。
其中,步骤S402中采用的是与步骤S302中相同的方式,通过chrome.tabs.sendMessage()由第一扩展脚本向Chrome网页发出一次性的通知消息。
步骤S403、Chrome网页通过chrome.runtime.sendMessage()向第二扩展脚本发出本地进程退出消息。
在步骤S403中,Chrome网页通过chrome.runtime.sendMessage()这一发送消息的短连接与第二扩展脚本建立连接,并向第二扩展脚本发出本地进程退出消息。
步骤S404、第二扩展脚本通过User Page Notification向用户页面发送本地进程结束回调接口的第二通知信息。
其中,User Page Notification就是用户页面通知,第二扩展脚本通过用户页面通知向用户页面发送本地进程结束回调接口的第二通知信息。因为之前调启动了本地进程,此时需要结束本地进程结束并回调用户页面。
Chrome虽然不再支持NPAPI,但还是提供NaCl和extension两种接口继续向第三方开发者提供支持,但这两种接口均不支持直接集成二进制代码。在研究了extension接口并且进行了相关验证后,本发明提出通过自开发的extension脚本,用来作为Chrome浏览器和外部进程之间的通讯桥梁,并且引入一套自定义的方法和回调通讯协议,实现了Chrome页面对外部二进制代码的远程调用的方案。
基于上述Chrome网页与终端软件通讯方法,本发明还提供了一种Chrome网页与终端软件通讯设备。如图6所示,所述Chrome网页与终端软件通讯设备包括处理器11、存储器12及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的Chrome网页与终端软件通讯程序,以实现以下步骤:
检测到用户页面的连接本地程序请求时,则通过Chrome网页中插入的第一扩展脚本启动本地EXE进程;
用户页面调用Chrome网页中的本地方法接口,通过第一扩展脚本将本地方法接口串流发送至本地EXE进程;
EXE进程将本地方法执行后的消息串流返回至Chrome网页, Chrome网页将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本。
在本实施例中,所述的Chrome网页与终端软件通讯程序10安装并运行于电子装置1中。所述电子装置1可以是桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该电子装置1可包括,但不仅限于,存储器11、处理器12及显示器13。图6仅示出了具有组件11-13的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器11在一些实施例中可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘或内存。所述存储器11在另一些实施例中也可以是所述电子装置1的外部存储设备,例如所述电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括所述电子装置1的内部存储单元也包括外部存储设备。所述存储器11用于存储安装于所述电子装置1的应用软件及各类数据,例如所述Chrome网页与终端软件通讯程序10的程序代码等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器11中存储的程序代码或处理数据,例如执行所述Chrome网页与终端软件通讯程序10等。
所述显示器13在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器13用于显示在所述电子装置1中处理的信息以及用于显示可视化的用户界面,例如应用菜单界面、应用图标界面等。所述电子装置1的部件11-13通过系统总线相互通信。
请参阅图7,是本发明安装Chrome网页与终端软件通讯程序10较佳实施例的功能模块图。在本实施例中,所述的Chrome网页与终端软件通讯程序10可以被分割成一个或多个模块,所述一个或者多个模块被存储于所述存储器11中,并由一个或多个处理器(本实施例为所述处理器12)所执行,以完成本发明。例如,在图7中,所述的Chrome网页与终端软件通讯程序10可以被分割成本地进程启动模块21、接口串流发送模块22及消息串流反馈模块23。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述Chrome网页与终端软件通讯程序10在所述电子装置1中的执行过程。以下描述将具体介绍所述模块21-23的功能。
本地进程启动模块21,用于检测到用户页面的连接本地程序请求时,则通过Chrome网页中插入的第一扩展脚本启动本地EXE进程;
接口串流发送模块22,用于用户页面调用Chrome网页中的本地方法接口,通过第一扩展脚本将本地方法接口串流发送至本地EXE进程;
消息串流反馈模块23,用于EXE进程将本地方法执行后的消息串流返回至Chrome网页, Chrome网页将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本。
基于上述Chrome网页与终端软件通讯方法,本发明还提供了一种存储介质(即计算机可读存储介质,也可称为存储器)。所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的Chrome网页与终端软件通讯方法的步骤。
综上所述,本发明所提供的Chrome网页与终端软件通讯方法、设备及存储介质,通过Chrome浏览器开放的extension接口,开发extension脚本,用来作为Chrome浏览器和外部进程之间的通讯桥梁,并且引入一套自定义的方法和回调通讯协议,实现了Chrome页面对外部二进制代码的远程调用的方案。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及本发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。

Claims (9)

1.一种Chrome网页与终端软件通讯方法,其特征在于,所述方法包括以下步骤:
检测到用户页面的连接本地程序请求时,则通过Chrome网页中插入的第一扩展脚本启动本地EXE进程;
用户页面调用Chrome网页中的本地方法接口,通过第一扩展脚本将本地方法接口串流发送至本地EXE进程;
本地EXE进程将本地方法执行后的消息串流返回至Chrome网页,Chrome网页将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本;
用户页面需以发消息的方式来调用Chrome网页中的本地方法接口;
PC端软件的本地程序EXE安装到用户PC端并注册为Chrome NativeMessagingHosts,在页面脚本连接时作为Chrome的子进程启动,通过进程间管道与Chrome网页建立通讯;
所述用户页面调用Chrome网页中的本地方法接口,通过第一扩展脚本将本地方法接口串流发送至本地EXE进程的步骤中包括:
用户页面通过chrome.runtime.sendMessage()调用Chrome网页的本地方法接口;
Chrome网页通过chrome.runtime.onMessageExternal()与第一扩展脚本建立通信连接;
第一扩展脚本通过portNative.postMessage()将本地方法接口串流发送EXE进程;
其中,portNative.postMessage()是一种本地消息机制,通过将浏览器所在PC端的本地应用注册为Chrome native messaging host,Chrome浏览器通过第一扩展脚本和第二扩展脚本与PC端本地EXE进程之间收发消息。
2.根据权利要求1所述Chrome网页与终端软件通讯方法,其特征在于,所述检测到用户页面的连接本地程序请求时,则通过Chrome网页中插入的第一扩展脚本启动本地EXE进程的步骤中包括:
检测到用户页面由chrome.runtime.onMessageExternal()发送的连接本地程序请求时,则Chrome网页通过chrome.runtime.onMessageExternal()与第一扩展脚本建立通信连接;
第一扩展脚本通过chrome.runtime.connectNative()来启动本地EXE进程。
3.根据权利要求1所述Chrome网页与终端软件通讯方法,其特征在于,所述本地EXE进程将本地方法执行后的消息串流返回至Chrome网页,Chrome网页将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本的步骤中包括:
本地EXE进程通过portNative.postMessage()向第一扩展脚本返回本地方法执行后的消息串流;
第一扩展脚本通过chrome.tabs.sendMessage()与Chrome网页建立通信连接;
Chrome网页通过chrome.runtime.sendMessage()将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本;
第二扩展脚本通过User Page Notification向用户页面发送本地方法返回回调接口的第一通知信息。
4.根据权利要求1所述Chrome网页与终端软件通讯方法,其特征在于,所述本地EXE进程将本地方法执行后的消息串流返回至Chrome网页,Chrome网页将与消息串流相对应的本地方法响应消息发送至Chrome网页中插入的第二扩展脚本的步骤之后,还包括:
本地EXE进程退出,第二扩展脚本在接收到本地EXE进程退出消息时向用户页面发送本地EXE进程结束回调接口的第二通知信息。
5.根据权利要求4所述Chrome网页与终端软件通讯方法,其特征在于,所述本地EXE进程退出,第二扩展脚本在接收到本地EXE进程退出消息时向用户页面发送本地EXE进程结束回调接口的第二通知信息的步骤中包括:
本地EXE进程退出,通过portNative.onDisconnect()对第一扩展脚本进行通知;
第一扩展脚本通过chrome.tabs.sendMessage()对Chrome网页进行通知;
Chrome网页通过chrome.runtime.sendMessage()向第二扩展脚本发出本地进程退出消息;
第二扩展脚本通过User Page Notification向用户页面发送本地EXE进程结束回调接口的第二通知信息。
6.根据权利要求1-5任一项所述Chrome网页与终端软件通讯方法,其特征在于,所述第一扩展脚本为Background脚本;所述Background脚本为Chrome网页的扩展模块,通过Chrome网页的扩展程序打包成.crx文件,并安装到用户PC端的Chrome浏览器中。
7.根据权利要求1-5任一项所述Chrome网页与终端软件通讯方法,其特征在于,所述第二扩展脚本为Content脚本;所述Content脚本为Chrome网页的扩展模块,通过Chrome网页的扩展程序打包成.crx文件,并安装到用户PC端的Chrome浏览器中。
8.一种Chrome网页与终端软件通讯设备,其特征在于,所述Chrome网页与终端软件通讯设备包括处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的Chrome网页与终端软件通讯程序,以实现如权利要求1-7任一项所述的Chrome网页与终端软件通讯方法的步骤。
9.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任一项所述的Chrome网页与终端软件通讯方法的步骤。
CN201710606398.7A 2017-07-24 2017-07-24 Chrome网页与终端软件通讯方法、设备及存储介质 Active CN107450946B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710606398.7A CN107450946B (zh) 2017-07-24 2017-07-24 Chrome网页与终端软件通讯方法、设备及存储介质
PCT/CN2017/100079 WO2019019257A1 (zh) 2017-07-24 2017-08-31 Chrome网页与终端软件通讯方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710606398.7A CN107450946B (zh) 2017-07-24 2017-07-24 Chrome网页与终端软件通讯方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN107450946A CN107450946A (zh) 2017-12-08
CN107450946B true CN107450946B (zh) 2020-08-14

Family

ID=60487433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710606398.7A Active CN107450946B (zh) 2017-07-24 2017-07-24 Chrome网页与终端软件通讯方法、设备及存储介质

Country Status (2)

Country Link
CN (1) CN107450946B (zh)
WO (1) WO2019019257A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905929A (zh) * 2019-12-03 2021-06-04 北京沃东天骏信息技术有限公司 保存网页内容的方法、装置、设备和计算机可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103297465A (zh) * 2012-02-24 2013-09-11 上海盛轩网络科技有限公司 网页服务器扩展方法及系统
CN104267972A (zh) * 2014-10-20 2015-01-07 中国科学院声学研究所 浏览器本地接口扩展方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101515248A (zh) * 2008-02-21 2009-08-26 国际商业机器公司 面向对象程序的跟踪方法和系统
US20120079374A1 (en) * 2010-09-29 2012-03-29 Apple Inc. Rendering web page text in a non-native font
CN105808250A (zh) * 2011-09-28 2016-07-27 北京奇虎科技有限公司 一种启动浏览器扩展应用的方法、装置及一种浏览器
CN106203144A (zh) * 2016-07-25 2016-12-07 飞天诚信科技股份有限公司 一种实现浏览器访问智能密钥设备的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103297465A (zh) * 2012-02-24 2013-09-11 上海盛轩网络科技有限公司 网页服务器扩展方法及系统
CN104267972A (zh) * 2014-10-20 2015-01-07 中国科学院声学研究所 浏览器本地接口扩展方法及装置

Also Published As

Publication number Publication date
CN107450946A (zh) 2017-12-08
WO2019019257A1 (zh) 2019-01-31

Similar Documents

Publication Publication Date Title
CN111176626B (zh) 跨编程语言的代码调用方法及装置、介质、设备
CN109240697B (zh) 调用处理方法及装置、存储介质
CN111338623B (zh) 一种开发用户界面的方法、装置、介质和电子设备
WO2017071207A1 (zh) 一种应用安装方法、相关装置及应用安装系统
US20110055848A1 (en) Launching an midp-based target application from a launcher application
CN108762956B (zh) 获取Native本地数据的方法、服务器、移动终端及存储介质
CN110069308B (zh) 页面启动方法、装置、电子设备和存储介质
CN108416021B (zh) 一种浏览器网页内容处理方法、装置、电子设备及可读介质
CN111581555B (zh) 一种文档加载方法、装置、设备及存储介质
CN113420268B (zh) 水印添加方法、装置、设备及存储介质
CN111459685A (zh) 页面端与原生端的通信方法、装置、设备及可读介质
WO2018233379A1 (zh) 数据明文获取方法、装置、电子终端及可读存储介质
CN109150956B (zh) 一种推送sdk的实现方法、装置、设备和计算机存储介质
CN111722935A (zh) 页面端与原生端的通信方法、装置、电子设备及可读介质
CN111859223A (zh) 一种基于移动中台的网页数据调取方法、装置和存储介质
CN107368339B (zh) 容器入口程序运行方法、系统、设备及存储介质
CN110928571A (zh) 业务程序开发方法和装置
CN109725887B (zh) 基于消息研发框架的数据交互方法、装置及终端设备
CN107450946B (zh) Chrome网页与终端软件通讯方法、设备及存储介质
US20130139185A1 (en) Intercepting and tracing interface routine transactions
WO2023083071A1 (zh) 视图交互方法、装置、电子设备及计算机可读介质
CN111414154A (zh) 前端开发的方法、装置、电子设备和存储介质
CN113779122B (zh) 导出数据的方法和装置
CN113778566A (zh) 原生应用调用方法、装置、电子设备和计算机可读介质
CN113176907A (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