WO2017193864A1 - 一种启动应用的方法和系统 - Google Patents

一种启动应用的方法和系统 Download PDF

Info

Publication number
WO2017193864A1
WO2017193864A1 PCT/CN2017/083023 CN2017083023W WO2017193864A1 WO 2017193864 A1 WO2017193864 A1 WO 2017193864A1 CN 2017083023 W CN2017083023 W CN 2017083023W WO 2017193864 A1 WO2017193864 A1 WO 2017193864A1
Authority
WO
WIPO (PCT)
Prior art keywords
local
local application
application
local server
request
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.)
Ceased
Application number
PCT/CN2017/083023
Other languages
English (en)
French (fr)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to SG11201809338UA priority Critical patent/SG11201809338UA/en
Priority to KR1020187035144A priority patent/KR102297817B1/ko
Priority to MYPI2018001874A priority patent/MY190566A/en
Priority to JP2018559711A priority patent/JP6932142B2/ja
Priority to EP17795482.3A priority patent/EP3457301A4/en
Publication of WO2017193864A1 publication Critical patent/WO2017193864A1/zh
Priority to PH12018502358A priority patent/PH12018502358A1/en
Priority to US16/186,161 priority patent/US11170068B2/en
Anticipated expiration legal-status Critical
Priority to US16/722,211 priority patent/US11210365B2/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • 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]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • the present application relates to the field of computer software technologies, and in particular, to a method and system for launching an application.
  • An application developed based on the mobile operating system can be provided on the mobile platform to implement various user-oriented functions.
  • Apple's IOS platform provides mobile applications based on IOS system
  • Google's Android platform provides Android-based mobile applications
  • Windows mobile platform provides Windows-based mobile applications.
  • Such applications on the mobile platform can be launched by other applications.
  • a short message received by the short message application includes a URL address, and after the user clicks on the URL address in the short message, the mobile terminal can open a webpage page.
  • the open web page can be opened by the mobile browser's default browser application.
  • the local application A for example, the ticket purchase application
  • the mobile terminal can open the payment page through the webView component integrated in the local application A when the payment is needed, and then open the local application B (for example, the payment application) through the payment page.
  • a short message in the short message application of the mobile terminal may include an Alipay link address.
  • the mobile terminal can open the page of the link address through the default browser application.
  • the page can attempt to evoke a local application B (such as the Alipay wallet application) via the Scheme URI, allowing the user to operate in the Alipay wallet application.
  • Scheme URI is a system-level resource location method that supports Android, iOS and Windows mobile platform systems.
  • the local application A of the mobile terminal opens a link address of a Taobao commodity via operation, for example, the local application A can open the page of the link address through its webView component.
  • the page can attempt to evoke a local application B (such as a Taobao application) through the Scheme URI, thereby enabling the user to operate in the Taobao application.
  • a local application B such as a Taobao application
  • the pages opened by the webView component in the local application A of most mobile platform systems generally do not disappear, but will jump to the application download guide page after a short period of time. In this way, even if the Taobao application has been installed on the mobile terminal, the page that is redirected through the webView component will still prompt the user to download the Taobao application.
  • the purpose of the embodiments of the present application is to provide a method and system for launching an application, so that the opened page can confirm that the corresponding application is installed in the terminal.
  • a method of launching an application comprising:
  • the first local application opens a webpage page to evoke the second local application
  • the second local application starts the local server
  • the first local application sends a reference JS request to the local server
  • the first local application stops jumping to the boot download page if it receives a response from the local server.
  • a system for launching an application including:
  • a first local application for opening a webpage page and evoking a second local application; also for sending a reference JS request to the local server; and for receiving the return of the local server Stop jumping to the boot download page when responding;
  • a local server configured to receive a first local application to send a reference JS request, and return a response to the first local application upon receiving the reference JS request.
  • the local server can respond to the request sent by other applications, even if the other application is not in the same process as the second local application. In this way, the local server can return a response if it receives a reference JS request sent by the first local application. If the first local application receives the response returned by the local server, it can be determined that the evoked second local application has started the local server, that is, the second local application has been evoked, so that the first local application is no longer needed to jump to A download guide page. Further, the first local application can stop jumping to the boot download page.
  • FIG. 1 is a flow chart of an embodiment of a method for launching an application according to the present application.
  • Embodiments of the present application provide a method and system for launching an application.
  • the browser application that opens the webpage or the local application A that opens the webpage through the webView component is generally not the same application as the evoked local application B, and is not in the same process.
  • the prior art there is a lack of way to evoke cross-process communication in the process, and the local application A cannot know that the local application B has been evoked, so that the local application A still jumps to the application B's boot download page.
  • FIG. 1 shows an implementation process of the embodiment. As shown in FIG. 1, the method includes:
  • the first local application opens a webpage page to evoke the second local application.
  • URI Uniform Resource Identifier
  • This resource is a broad concept, which can be a so-called web resource, a file from the local machine, a video on the network, and so on.
  • the following forms are all URIs:
  • URI has, for example, the following form:
  • the scheme is the scheme name.
  • the SMS app has a text message that includes the following form of link address:
  • zmVerify%3a%2f%2fschemeApi%2fstartApp%3fbundleId%3d2000118%26version%3d1.5.1 is the parameter in the link, and is also a URI after the URL Encode (URL Decode is:
  • zmVerify represents the sesame authentication APP. If it is an Alipay Wallet app, for example:
  • the system can locate the APP that declares this through the zmVerify scheme and evoke it.
  • the schemeApi, startapp, bundleID, version, etc. are optional parameters.
  • the schemeApi is equivalent to the domain name domain, such as qq.com, alipay.com.
  • the second application of startapp, bundleID, version or more of other similar parameters can process these parameters according to business needs, such as opening a web page, playing a piece of music, sending a notification, and the like.
  • the default browser application can be opened to open the link address.
  • the browser application of the terminal can parse the URI in the link address and access the corresponding link resource according to the application identified in the URI. Specifically, the terminal browser can assemble the URI by parsing the js code in the webpage data.
  • the system API can be used to evoke the phase.
  • the Alipay APP should be available and access the resources described in the above link address in the Alipay APP.
  • the application identified by the URI is Taobao APP
  • the corresponding Taobao APP can be evoked through the system API, and the resource described by the above link address is opened in the Taobao APP.
  • the default browser application is the first local application in S110, and the evoked Alipay APP or Taobao APP is the second local application.
  • the first local application can be an application that integrates a webView component, such as a shopping application.
  • the shopping app integrates with a webView that can be opened via the integrated webView app. Due to the integration of the webView component that implements web page browsing, the process does not have to launch the default browser application.
  • the first local application and the second local application are generally in different processes, and thus direct communication cannot be achieved.
  • S120 The second local application starts the local server.
  • a local server can be started.
  • the local server can be an HTTP server that can receive HTTP requests (such as HTTP GET requests) and can respond to HTTP requests.
  • a server can be set up and started by a software program, which has been widely used in the prior art and will not be described again.
  • the address of the local server is, for example, 127.0.0.1: prot. 127.0.0.1 is also called the return address, pointing to the local, generally used for testing.
  • the resource corresponding to the foregoing link address can be accessed, thereby providing the user to browse or operate in the second local application.
  • S130 The first local application sends a reference JS request to the local server.
  • the first local application can send a reference JS request to the open local server.
  • JSONP JSONP
  • JSONP JSONP
  • JSONP is a data format, a "use mode" of JSON. You can make a web page request data from another domain. At the same time, cross-source resource sharing can be achieved. Due to the same-origin policy, web pages located at server1.example.com cannot communicate with servers that are not server1.example.com, and the ⁇ script> element in HTML is an exception. Using this open strategy of the ⁇ script> element, web pages can get data dynamically generated from other sources, and this usage pattern is JSONP.
  • the reference JS request sent by the first local application is as follows:
  • ⁇ scritp> ⁇ scritp> is a dynamically added tag indicating that the JS request is referenced.
  • 127.0.0.1 is the above local address, which is the address of the local server that is started.
  • 8888 is the port number, which is generally a default value.
  • the port number used may also be another port number pre-negotiated by the first local application with the local server opened by the second local application.
  • the first local application may send a JS reference request including a local server address caused by dynamically adding the ⁇ scritp> tag to the webpage to the local server.
  • S140 The first local application stops jumping to the boot download page if receiving the response returned by the local server.
  • the local server can respond to requests sent by other applications even if the other application is not in the same process as the second local application.
  • the local server can return a response if it receives a reference JS request sent by the first local application.
  • This response can be either a response or it can be obtained in advance based on business negotiation. For the latter, if the first local application receives the response returned by the local server and the response meets the pre-negotiated response, it can be determined that the evoked second local application has started the local server, that is, the second local The application has been evoked so that the first local application no longer needs to jump to a download guide page. Further, the first local application can stop jumping to the boot download page.
  • the first local application receives the response returned by the local server, and may be performed within a preset response time. That is, if the first local application receives the local server within a preset response time The returned response stops jumping to the boot download page.
  • the first local application may jump to the download guide page if it does not receive the response returned by the local server within the preset response time.
  • the download guide page that jumps to can be set in the webpage logic, and has been implemented in the prior art, and will not be described again.
  • the port can be one of a pre-negotiated set of port numbers.
  • the local server port initiated by the second local application in S120 is one of a group of ports, including 8888, 8889, and 8890.
  • the port in the reference JS request sent by the first local application may also be one of the group of ports. Initially, you can default to the 8888 port.
  • the local server port initiated by the second local application in S120 is 8888
  • the first local application in S130 sends a reference JS request which is also port 8888.
  • the local server can receive the reference JS request.
  • the 8888 port may already be occupied by other applications.
  • the first local application in S130 sends a reference JS request which is also port 8888, and the local server cannot receive the reference JS request. If the first local application is within a preset time period, for example, within 20 ms, if the response returned by the local server is not received, the reference JS request may be sent again by replacing the other port in the preset port group. When the response returned by the local server is received within the preset duration after the reference JS request is sent again, the first local application may stop jumping to the boot download page. If the first local application uses all the ports in the preset port group to receive the response returned by the local server within the preset response time, it can jump to the boot download page.
  • the preset duration may be less than the preset response time.
  • the preset duration is 20ms and the preset response time is 100ms.
  • the first port number in a group of pre-negotiated port numbers is occupied, you can set it as a pre-negotiated group of ports.
  • the reference JS request may be sent by using the second port number of the pre-negotiated set of port numbers.
  • the server that is started and the first local application may also use a third port number in a set of pre-negotiated port numbers, and the details are not described herein.
  • the preset duration can be less than the preset response time, which can enable the first local application to try to try as many port numbers as possible in the preset port number.
  • the first local application can confirm that the second local application is enabled after receiving the reference JS request by using any port number, and if the response returned by the local server is obtained, the first local application can stop jumping to the boot download page. .
  • the application also provides an embodiment of a system for launching an application, including:
  • a first local application for opening a webpage page and evoking a second local application; also for sending a reference JS request to the local server; and for stopping the jump to the boot when receiving the response returned by the local server Download page;
  • a local server configured to receive a first local application to send a reference JS request, and return a response to the first local application upon receiving the reference JS request.
  • the link address of the webpage page is triggered to be opened
  • the corresponding local webpage is opened by the first local application
  • the first local application comprises a browser application or a local application integrated with the WebView component.
  • the first local application assembles the parameters included in the webpage page address into a URI, and evokes opening the second local application corresponding to the URI.
  • the first local application sends a reference JS request to the local server, including:
  • the first local should send a reference JS request to the local server for the local server address caused by dynamically adding the ⁇ scritp> tag to the local server address.
  • the first local application sends a reference JS request including a port number, the port number is a default value, or the first local application is pre-negotiated with a local server opened by the second local application. Good port number.
  • the second local application sets the port number to the first port number of the pre-negotiated set of port numbers during the startup of the local server;
  • the first local application sends a reference JS request including a first port number of a pre-negotiated set of port numbers.
  • the second local application starts the local server. If the set first port number is already occupied, the port number is set to a second port number of the pre-negotiated group of port numbers;
  • the first local application sends a reference JS request by using the first port number, and if the response returned by the local server is not received within the preset time period, sending by using the second port number of the pre-negotiated group of port numbers Quote a JS request.
  • the first local application stops jumping to the boot download page when receiving the response returned by the local server, including:
  • the first local application stops jumping to the boot download page if it receives a response returned by the local server within a preset response time.
  • the first local application jumps to the boot download page if it does not receive the response returned by the local server within the preset response time.
  • PLD Programmable Logic Device
  • FPGA Field Programmable Gate Array
  • HDL Hardware Description Language
  • the controller can be implemented in any suitable manner, for example, the controller can take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (eg, software or firmware) executable by the (micro)processor.
  • computer readable program code eg, software or firmware
  • examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, The Microchip PIC18F26K20 and the Silicone Labs C8051F320, the memory controller can also be implemented as part of the memory's control logic.
  • controller in addition to implementing the controller in a purely computer readable program code, it is entirely possible to logically program the method steps to make the controller use logic gates, switches, and dedicated integrated circuits.
  • the same functions are implemented in the form of circuits, programmable logic controllers, and embedded microcontrollers.
  • Such a controller can therefore be considered a hardware component, and the means for implementing various functions included therein can also be considered as a structure within the hardware component.
  • a device for implementing various functions can be considered as a software module that can be both a method of implementation and a structure within a hardware component.
  • the system, device, module or unit illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product having a certain function.
  • embodiments of the present invention can be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the computer readable memory is
  • the instructions in the memory produce an article of manufacture comprising an instruction device that implements the functions specified in one or more blocks of the flowchart or in a flow or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
  • a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
  • processors CPUs
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • the memory may include non-persistent memory, random access memory (RAM), and/or non-volatile memory in a computer readable medium, such as read only memory (ROM) or flash memory.
  • RAM random access memory
  • ROM read only memory
  • Memory is an example of a computer readable medium.
  • Computer readable media includes both permanent and non-persistent, removable and non-removable media.
  • Information storage can be implemented by any method or technology.
  • the information can be computer readable instructions, data structures, modules of programs, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory. (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disk read only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, Magnetic tape cartridges, magnetic tape storage or other magnetic storage devices or any other non-transportable media can be used to store information that can be accessed by a computing device.
  • computer readable media does not include temporary storage of computer readable media, such as modulated data signals and carrier waves.
  • embodiments of the present application can be provided as a method, system, or computer program product.
  • the present application can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment in combination of software and hardware.
  • the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • the application can be described in the general context of computer-executable instructions executed by a computer, such as a program module.
  • program modules include routines, programs, objects, components, data structures, and the like that perform particular tasks or implement particular abstract data types.
  • the present application can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are connected through a communication network.
  • program modules can be located in both local and remote computer storage media including storage devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例公开了一种启动应用的方法和系统。所述方法一实施例包括:第一本地应用打开网页页面,尝试唤起第二本地应用;第二本地应用启动本地服务器;第一本地应用发送引用JS请求至所述本地服务器;第一本地应用如果接收到所述本地服务器返回的响应则停止跳转到引导下载页面。利用本申请实施例,可以使打开的页面(乃至第一本地应用)能够确认所在终端已安装相应应用(第二本地应用)。

Description

一种启动应用的方法和系统 技术领域
本申请涉及计算机软件技术领域,尤其涉及一种启动应用的方法和系统。
背景技术
移动端平台上可以提供基于该移动端操作系统开发的应用,以完成各种面向用户的功能的实现。例如,苹果的IOS平台提供基于IOS系统的移动端应用,谷歌的Android平台提供基于Android系统的移动端应用,Windows移动端平台提供基于Windows系统的移动端应用。
这种移动端平台上的应用,可以通过其他应用来启动。例如,短信应用收到的一条短信中包括一个URL地址,用户点击该短信中的URL地址后,移动端可以打开一个网页页面。打开的网页页面,可以是通过移动端的默认浏览器应用来打开。再例如,移动端上的本地应用A(例如购票应用)在需要支付时,可以通过本地应用A中集成的webView组件打开支付页面,进而通过该支付页面打开本地应用B(例如支付应用)。
具体的,例如移动端的短信应用中的某个短信可能包括一个支付宝的链接地址。用户点击该短信中的链接地址后,移动端通过默认的浏览器应用可以打开所述链接地址的页面。进而,该页面可以尝试通过Scheme URI来唤起本地应用B(如支付宝钱包应用),从而使用户可以在支付宝钱包应用中进行操作。Scheme URI是一种系统级的资源定位方式,支持Android、iOS和Windows移动平台系统。上述例子中,唤起支付宝钱包应用之后,大多移动平台系统的浏览器应用打开的页面一般不会消失,而是会在一小段时间后跳转到应用下载引导页面。这样,即使支付宝钱包应用已经安装于移动终端上,浏览器跳转的页面仍然会提示用户下载支付宝钱包应用。
再例如,移动端的本地应用A中经由操作打开一个淘宝商品的链接地址,如本地应用A可以通过其webView组件打开所述链接地址的页面。进而,该页面可以尝试通过Scheme URI来唤起本地应用B(如淘宝应用),从而在使用户可以在淘宝应用中进行操作。类似的,上述例子中,唤起淘宝应用之后,大多移动平台系统的本地应用A中的webView组件打开的页面一般不会消失,而是会在一小段时间后跳转到应用下载引导页面。这样,即使淘宝应用已经安装于移动终端上,通过webView组件跳转的页面仍然会提示用户下载淘宝应用。
可见,上述现有技术,打开网页并唤起对应应用后,打开的网页无法获知所在移动终端上已安装相应应用。由此,无论所在移动终端是否已安装相应应用,均会引导至应用下载页面,增加了通信过程,且浪费资源,影响用户感受。
发明内容
本申请实施例的目的是提供一种启动应用的方法和系统,以使打开的页面能够确认所在终端已安装相应应用。
为解决上述技术问题,本申请实施例是这样实现的:
一种启动应用的方法,包括:
第一本地应用打开网页页面,唤起第二本地应用;
第二本地应用启动本地服务器;
第一本地应用发送引用JS请求至所述本地服务器;
第一本地应用如果接收到所述本地服务器返回的响应则停止跳转到引导下载页面。
一种启动应用的系统,包括:
第一本地应用,用于打开网页页面,并唤起第二本地应用;还用于发送引用JS请求至所述本地服务器;还用于在接收到所述本地服务器返回的 响应时停止跳转到引导下载页面;
第二本地应用,用于启动本地服务器;
本地服务器,用于接收第一本地应用发送引用JS请求,并在接收到所述引用JS请求时返回响应至第一本地应用。
由以上本申请实施例提供的技术方案可见,第二本地应用启动本地服务器后,所述本地服务器可以响应其它应用发送的请求,即使该其它应用与第二本地应用不在同一进程。这样,本地服务器如果接收到第一本地应用发送的引用JS请求,可以返回一个响应。第一本地应用如果接收所述本地服务器返回的响应,则可以判断唤起的第二本地应用已启动本地服务器,也即说明第二本地应用已被唤起,从而不再需要第一本地应用跳转到某个下载引导页面。进而,第一本地应用可以停止跳转到引导下载页面。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一种启动应用的方法实施例的流程图。
具体实施方式
本申请实施例提供一种启动应用的方法和系统。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部 的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
前述现有技术中,打开网页的浏览器应用或通过webView组件打开网页的本地应用A(例如前述浏览器应用或购票应用),一般与唤起的本地应用B不是同一应用,也就不在同一进程。现有技术中缺乏唤起过程中的跨进程通信的方式,本地应用A也就不能获知本地应用B已被唤起,从而本地应用A仍然跳转至应用B的引导下载页面。
本申请实施例提供一种启动应用的方法,图1示出了该实施例的实现流程,如图1所示,包括:
S110:第一本地应用打开网页页面,唤起第二本地应用。
网页页面的链接地址被以点击等操作触发打开时,相应页面可以载入浏览器应用或本地应用的WebView组件过程中。浏览器应用或本地应用的WebView组件可以将所述网页页面的地址中所包含的参数组装为URI。该URI也称为Scheme URI(也作URI Scheme)或custom Scheme URI。URI是统一资源标识符(Uniform Resource Identifier)的命名结构,可以定义资源。这个资源是一个宽泛的概念,可以是通常所说的web资源,也可以是本机的一个文件,也可以是网络上的视频,等等。以下形式都是URI:
http://write.blog.csdn.net/postedit/7313543
file:///c:/WINDOWS/clock.avi
Git://github.com/user/project-name.git
ftp://user1:1234@地址
ed2k://|file|%5BMAC%E7%89%88%E6%9E%81%E5%93%81%E9%A3%9E%E8%BD%A69%EF%BC%9A%E6%9C%80%E9%AB%98%E9%80%9A%E7%BC%89%5D.%5BMACGAME%5DNeed.For.Speed.Most.Wanted.dmg|4096933888|2c55f0ad2cb7f6b296db94090b63e88e|h=ltcxuvnp24ufx25h2x7ugfaxfchjkwxa|/
整体上,URI具备例如如下形式:
scheme://host:[port]/path?queryKey=queryValue
其中:scheme为scheme名称,例如上述http、file、Git、ed2k等都是scheme名称;host为主机地址;path为路径;queryKey=queryValue为查询键值,port为端口(非必须)。
例如,短信应用中有一条短信,其内容包括以下形式的链接地址:
http://www.alipay.com/custom.html?schemeUrl=zmVerify%3a%2f%2fschemeApi%2fstartApp%3fbundleId%3d2000118%26version%3d1.5.1
其中,
zmVerify%3a%2f%2fschemeApi%2fstartApp%3fbundleId%3d2000118%26version%3d1.5.1是链接中的参数,也是一个被URL Encode后的URI(URL Decode为:
zmVerify://schemeApi/startApp?bundleId=2000118&version=1.5.1)。其中,zmVerify表示芝麻认证APP。如果是支付宝钱包APP,则例如是:
alipay://schemeApi/startApp?bundleId=2000118&version=1.5.1。系统通过zmVerify这个scheme能够定位到声明这个的APP,并唤起。schemeApi,startapp,bundleID,version等为可选参数项。其中schemeApi等价于域名的域,例如qq.com,alipay.com。而startapp,bundleID,version或更多的其他类似参数项第二应用可以根据业务需求处理这些参数,例如可以是打开某个网页,播放一段音乐,发送一条通知等。
短信应用中上述链接地址被触发打开后,可以开启默认的浏览器应用,以打开链接地址。在打开过程中,终端的浏览器应用可以解析得到该链接地址中的URI,并按照URI中标识出的应用来访问相应的链接资源。具体的,终端浏览器通过解析网页数据中的js代码可以组装得到URI。
例如,URI标识出的应用为支付宝APP,则可以通过系统API唤起相 应的支付宝APP,并在支付宝APP中访问上述链接地址所描述的资源。类似的,URI标识出的应用为淘宝APP,则可以通过系统API唤起相应的淘宝APP,并在淘宝APP中打开上述链接地址所描述的资源。
上述例子中,默认的浏览器应用即为S110中的第一本地应用,唤起的支付宝APP或淘宝APP即为第二本地应用。
类似的,第一本地应用可以是集成webView组件的应用,例如某个购物应用。该购物应用中集成有webView,可以通过该集成的webView应用打开某个链接。由于集成有实现网页页面浏览功能的webView组件,该过程可以不必启动默认的浏览器应用。
上述第一本地应用与第二本地应用一般位于不同的进程,因而无法实现直接的通信。
S120:第二本地应用启动本地服务器。
本申请实施例中,第二本地应用被唤起后,可以启动一个本地服务器。本地服务器可以是一个HTTP服务器,可以接收HTTP请求(例如HTTP GET请求),并可以对HTTP请求作出响应。可以通过软件程序设定一个服务器并启动,该内容现有技术中已有广泛的应用,不再赘述。该本地服务器的地址例如为127.0.0.1:prot。127.0.0.1也称为回送地址,指向本地,一般用来测试使用。应用或程序一旦使用回送地址发送数据,协议软件立即返回相应信息,实际上不进行网络传输。
此外,第二本地应用被唤起后,可以访问前述链接地址对应的资源,从而在第二本地应用中提供用户进行浏览或操作。
S130:第一本地应用发送引用JS请求至所述本地服务器。
第一本地应用可以发送引用JS请求至所述开启的本地服务器。
本申请实施例中发送引用JS请求是采用了JSONP(JSON with Padding)技术。JSONP是一种资料格式,是JSON的一种“使用模式”, 可以让网页从别的网域要资料。同时,可以实现跨来源资源共享。由于同源策略,一般来说位于server1.example.com的网页页面无法与不是server1.example.com的服务器沟通,而HTML中的<script>元素是一个例外。利用<script>元素的这个开放策略,网页可以得到从其他来源动态产生的数据资料,而这种使用模式就是JSONP。
本申请实施例中,第一本地应用发送的引用JS请求例如如下:
<scritp>http://127.0.0.1:8888/a.js</script>
其中,<scritp><scritp>为动态添加的标签,表明是引用JS请求。127.0.0.1是上述本机地址,即启动的本地服务器的地址。8888为端口号,一般为一默认值。使用的端口号也可以是第一本地应用与第二本地应用开启的本地服务器预先协商好的其它端口号。
具体的,第一本地应用可以将对所述网页动态添加<scritp>标签所引发的包含本地服务器地址的JS引用请求发送至所述本地服务器。
S140:第一本地应用如果接收到所述本地服务器返回的响应则停止跳转到引导下载页面。
第二本地应用启动本地服务器后,所述本地服务器可以响应其它应用发送的请求,即使该其它应用与第二本地应用不在同一进程。
这样,本地服务器如果接收到第一本地应用发送的引用JS请求,可以返回一个响应。这个响应可以是任一种响应,也可以是预先根据业务协商得到。对于后者来说,第一本地应用如果接收所述本地服务器返回的响应并且所述响应符合预先协商得到的响应,则可以判断唤起的第二本地应用已启动本地服务器,也即说明第二本地应用已被唤起,从而不再需要第一本地应用跳转到某个下载引导页面。进而,第一本地应用可以停止跳转到引导下载页面。
第一本地应用接收所述本地服务器返回的响应,可以在预设响应时间内进行。即,如果第一本地应用在预设响应时间内接收到所述本地服务器 返回的响应,则停止跳转到引导下载页面。
此外,第一本地应用如果在预设响应时间内没有接收所述本地服务器返回的响应,则可以跳转到下载引导页面。跳转到的下载引导页面可以在网页逻辑中加以设置,并且已在现有技术中实现,不再赘述。
所述端口可以是预先协商好的一组端口号中的一个。例如,S120中第二本地应用启动的本地服务器端口为一组端口中的一个,这一组端口包括8888,8889和8890。S130中,第一本地应用发送的引用JS请求中的端口也可以是这一组端口中的一个。初始时,可以默认为8888这一端口。这样,S120中第二本地应用启动的本地服务器端口为8888,S130中第一本地应用发送引用JS请求也是8888端口。从而本地服务器可以接收到所述引用JS请求。有时8888端口可能已被其他应用占用,这时,S120中第二本地应用启动的本地服务器时,可以发现8888这一端口已被占用,从而改为8889这一端口。这样,S130中第一本地应用发送引用JS请求也是8888端口,则本地服务器无法接收该引用JS请求。第一本地应用在预设时长内,例如20ms内,如果没有接收到本地服务器返回的响应,可以更换为预设端口组中的另一端口再次发送引用JS请求。当再次发送引用JS请求后的预设时长内接收到本地服务器返回的响应,第一本地应用可以停止跳转到引导下载页面。如果第一本地应用使用预设的端口组中的所有端口均在预设响应时间内没有接收到所述本地服务器返回的响应,可以跳转到引导下载页面。
上述预设时长可以小于预设响应时间。例如,预设时长为20ms,预设响应时间为100ms。这样,即使启动的本地服务器中某个端口已被占用,可以更换其它端口,例如预先协商好的一组端口号中的第一端口号已被占用时,可以设置为预先协商好的一组端口号中的第二端口号;相应地,第一本地应用通过第一端口号发送引用JS请求,如果在第一预设时长内没有 接收到所述本地服务器返回的响应,可以通过所述预先协商好的一组端口号中的第二端口号发送引用JS请求。类似的,启动的服务器与第一本地应用还可以采用预先协商好的一组端口号中的第三端口号等,不再赘述。预设时长可以小于预设响应时间,可以使得第一本地应用能够尝试尽量多的预设端口号中的端口号。这样,第一本地应用在采用任一端口号发送引用JS请求后如果得到所述本地服务器返回的响应,都可以确认第二本地应用已开启,从而第一本地应用可以停止跳转到引导下载页面。
本申请还提供一种启动应用的系统实施例,包括:
第一本地应用,用于打开网页页面,并唤起第二本地应用;还用于发送引用JS请求至所述本地服务器;还用于在接收到所述本地服务器返回的响应时停止跳转到引导下载页面;
第二本地应用,用于启动本地服务器;
本地服务器,用于接收第一本地应用发送引用JS请求,并在接收到所述引用JS请求时返回响应至第一本地应用。
优选地,所述网页页面的链接地址被触发打开时由第一本地应用打开对应的网页页面,所述第一本地应用包括浏览器应用或集成WebView组件的本地应用。
优选地,所述网页页面的链接地址被触发打开时,第一本地应用将所述网页页面地址中所包含的参数组装为URI,并唤起打开所述URI对应的第二本地应用。
优选地,所述第一本地应用发送引用JS请求至所述本地服务器,包括:
第一本地应将对所述本地服务器地址动态添加<scritp>标签所引发的包办本地服务器地址的引用JS请求发送至所述本地服务器。
优选地,所述第一本地应用发送引用JS请求中包括端口号,所述端口号为默认值或第一本地应用与第二本地应用开启的本地服务器预先协商 好的端口号。
优选地:
第二本地应用启动本地服务器过程中将端口号设置为预先协商好的一组端口号中的第一端口号;
第一本地应用发送引用JS请求中包括预先协商好的一组端口号中的第一端口号。
优选地:
第二本地应用启动本地服务器,如果设置的第一端口号已被占用,则设置端口号为预先协商好的一组端口号中的第二端口号;
第一本地应用通过第一端口号发送引用JS请求,如果在预设时长内没有接收到所述本地服务器返回的响应,则通过所述预先协商好的一组端口号中的第二端口号发送引用JS请求。
优选地,所述第一本地应用在接收到所述本地服务器返回的响应时停止跳转到引导下载页面,包括:
第一本地应用如果在预设响应时间内接收到所述本地服务器返回的响应,则停止跳转到引导下载页面。
优选地,第一本地应用如果在预设响应时间内接没有收到所述本地服务器返回的响应,则跳转到引导下载页面。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列 (Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电 路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读 存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括 为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (20)

  1. 一种启动应用的方法,其特征在于,包括:
    第一本地应用打开网页页面,唤起第二本地应用;
    第二本地应用启动本地服务器;
    第一本地应用发送引用JS请求至所述本地服务器;
    第一本地应用如果接收到所述本地服务器返回的响应则停止跳转到引导下载页面。
  2. 如权利要求1所述的方法,其特征在于,所述网页页面的链接地址被触发打开时由第一本地应用打开对应的网页页面,所述第一本地应用包括浏览器应用或集成WebView组件的本地应用。
  3. 如权利要求1所述的方法,其特征在于,所述网页页面的链接地址被触发打开时,第一本地应用将所述网页页面地址中所包含的参数组装为URI,并唤起打开所述URI对应的第二本地应用。
  4. 如权利要求1所述的方法,其特征在于,所述发送引用JS请求至所述本地服务器包括采用JSONP发送JS请求至所述本地服务器。
  5. 如权利要求1所述的方法,其特征在于,所述第一本地应用发送引用JS请求至所述本地服务器,包括:
    第一本地应用将对所述网页动态添加<scritp>标签所引发的包含本地服务器地址的引用JS请求发送至所述本地服务器。
  6. 如权利要求5所述的方法,其特征在于,所述第一本地应用发送引用JS请求中包括端口号,所述端口号为默认值或第一本地应用与第二本地应用开启的本地服务器预先协商好的端口号。
  7. 如权利要求6所述的方法,其特征在于:
    第二本地应用启动本地服务器,并设置端口号为预先协商好的一组端口号中的第一端口号;
    第一本地应用发送引用JS请求中包括预先协商好的一组端口号中的第一端口号。
  8. 如权利要求7所述的方法,其特征在于:
    第二本地应用启动本地服务器,如果设置的第一端口号已被占用,则设置端口号为预先协商好的一组端口号中的第二端口号;
    第一本地应用通过第一端口号发送引用JS请求,如果在预设时长内没有接收到所述本地服务器返回的响应,则通过所述预先协商好的一组端口号中的第二端口号发送引用JS请求。
  9. 如权利要求1所述的方法,其特征在于,所述第一本地应用如果接收所述本地服务器返回的响应则停止跳转到引导下载页面,包括:
    第一本地应用如果在预设响应时间内接收到所述本地服务器返回的响应,则停止跳转到引导下载页面。
  10. 如权利要求9所述的方法,其特征在于,所述方法还包括:
    第一本地应用如果在预设响应时间内接没有收到所述本地服务器返回的响应,则跳转到引导下载页面。
  11. 一种启动应用的系统,其特征在于,包括:
    第一本地应用,用于打开网页页面,并唤起第二本地应用;还用于发送引用JS请求至本地服务器;还用于在接收到所述本地服务器返回的响应时停止跳转到引导下载页面;
    第二本地应用,用于启动本地服务器;
    本地服务器,用于接收第一本地应用发送引用JS请求,并在接收到所述引用JS请求时返回响应至第一本地应用。
  12. 如权利要求11所述的系统,其特征在于,所述网页页面的链接地址被触发打开时由第一本地应用打开对应的网页页面,所述第一本地应用包括浏览器应用或集成WebView组件的本地应用。
  13. 如权利要求11所述的系统,其特征在于,所述网页页面的链接地址被触发打开时,第一本地应用将所述网页页面地址中所包含的参数组装为URI,并唤起打开所述URI对应的第二本地应用。
  14. 如权利要求11所述的系统,其特征在于,所述发送引用JS请求至所述本地服务器包括采用JSONP发送JS请求至所述本地服务器。
  15. 如权利要求11所述的系统,其特征在于,所述第一本地应用发送引用JS请求至所述本地服务器,包括:
    第一本地应用将对所述本地服务器地址动态添加<scritp>标签所引发的包含本地服务器地址的引用JS请求发送至所述本地服务器。
  16. 如权利要求15所述的系统,其特征在于,所述第一本地应用发送引用JS请求中包括端口号,所述端口号为默认值或第一本地应用与第二本地应用开启的本地服务器预先协商好的端口号。
  17. 如权利要求16所述的系统,其特征在于:
    第二本地应用启动本地服务器过程中将端口号设置为预先协商好的一组端口号中的第一端口号;
    第一本地应用发送引用JS请求中包括预先协商好的一组端口号中的第一端口号。
  18. 如权利要求17所述的系统,其特征在于:
    第二本地应用启动本地服务器,如果设置的第一端口号已被占用,则设置端口号为预先协商好的一组端口号中的第二端口号;
    第一本地应用通过第一端口号发送引用JS请求,如果在预设时长内没有接收到所述本地服务器返回的响应,则通过所述预先协商好的一组端口号中的第二端口号发送引用JS请求。
  19. 如权利要求11所述的系统,其特征在于,所述第一本地应用在接收到所述本地服务器返回的响应时停止跳转到引导下载页面,包括:
    第一本地应用如果在预设响应时间内接收到所述本地服务器返回的响应,则停止跳转到引导下载页面。
  20. 如权利要求19所述的系统,其特征在于,第一本地应用如果在预设响应时间内接没有收到所述本地服务器返回的响应,则跳转到引导下载页面。
PCT/CN2017/083023 2016-05-11 2017-05-04 一种启动应用的方法和系统 Ceased WO2017193864A1 (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
SG11201809338UA SG11201809338UA (en) 2016-05-11 2017-05-04 Method and system for starting application
KR1020187035144A KR102297817B1 (ko) 2016-05-11 2017-05-04 애플리케이션 시작 방법 및 시스템
MYPI2018001874A MY190566A (en) 2016-05-11 2017-05-04 Method and system for starting application
JP2018559711A JP6932142B2 (ja) 2016-05-11 2017-05-04 アプリケーション起動方法及びシステム
EP17795482.3A EP3457301A4 (en) 2016-05-11 2017-05-04 METHOD AND SYSTEM FOR STARTING AN APPLICATION
PH12018502358A PH12018502358A1 (en) 2016-05-11 2018-11-08 Method and system for starting application
US16/186,161 US11170068B2 (en) 2016-05-11 2018-11-09 Method and system for starting application
US16/722,211 US11210365B2 (en) 2016-05-11 2019-12-20 Method and system for starting application

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610312307.4 2016-05-11
CN201610312307.4A CN107370778B (zh) 2016-05-11 2016-05-11 一种启动应用的方法和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/186,161 Continuation US11170068B2 (en) 2016-05-11 2018-11-09 Method and system for starting application

Publications (1)

Publication Number Publication Date
WO2017193864A1 true WO2017193864A1 (zh) 2017-11-16

Family

ID=60266184

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/083023 Ceased WO2017193864A1 (zh) 2016-05-11 2017-05-04 一种启动应用的方法和系统

Country Status (10)

Country Link
US (2) US11170068B2 (zh)
EP (1) EP3457301A4 (zh)
JP (1) JP6932142B2 (zh)
KR (1) KR102297817B1 (zh)
CN (2) CN107370778B (zh)
MY (1) MY190566A (zh)
PH (1) PH12018502358A1 (zh)
SG (2) SG10202108617XA (zh)
TW (1) TWI664575B (zh)
WO (1) WO2017193864A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111506370A (zh) * 2020-03-09 2020-08-07 平安普惠企业管理有限公司 Ios系统上h5页面跳转方法、装置、计算机设备和存储介质
CN112579264A (zh) * 2019-09-30 2021-03-30 上海游昆信息技术有限公司 一种应用程序跳转的方法、终端及计算机存储介质

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107370778B (zh) 2016-05-11 2020-06-30 阿里巴巴集团控股有限公司 一种启动应用的方法和系统
CN109783742B (zh) * 2018-12-14 2023-08-22 平安科技(深圳)有限公司 用于开发辅助的页面跳转方法、装置和计算机设备
CN109857478B (zh) * 2019-01-31 2022-03-25 北京小米移动软件有限公司 目标应用程序的运行方法、装置及可读存储介质
US11916736B2 (en) * 2019-04-17 2024-02-27 Toyota Motor Engineering & Manufacturing North America, Inc. Reorganizing autonomous entities for improved vehicular micro cloud operation
US10938923B2 (en) * 2019-04-17 2021-03-02 Home Depot Product Authority, Llc Customizable router for managing traffic between application programming interfaces
CN111273950B (zh) * 2019-12-31 2023-03-21 百度国际科技(深圳)有限公司 应用唤起方法、装置、电子设备及计算机可读存储介质
CN116361113A (zh) * 2020-02-24 2023-06-30 支付宝(杭州)信息技术有限公司 应用状态获取方法、装置、电子设备及可读存储介质
JP7570193B2 (ja) * 2020-07-29 2024-10-21 キヤノン株式会社 情報処理装置、アプリケーションの起動方法及びプログラム
CN112468611B (zh) * 2020-11-27 2023-04-21 深圳市欢太科技有限公司 应用程序启动方法、终端设备及计算机存储介质
CN113641940B (zh) * 2021-10-13 2022-01-25 北京新氧科技有限公司 页面跳转方法、装置、系统、设备及存储介质
CN114185627B (zh) * 2021-10-22 2024-11-08 北京水滴科技集团有限公司 程序启动反馈方法、装置、终端设备、服务器及存储介质
CN114546439A (zh) * 2022-01-18 2022-05-27 万帮数字能源股份有限公司 设备的固件升级方法及系统
CN115529584A (zh) * 2022-10-08 2022-12-27 上海蒜芽信息科技有限公司 应用程序的显示方法、系统、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050171950A1 (en) * 2004-01-29 2005-08-04 Dumitru Marius M. Managing application status information for a computer application
US20100083102A1 (en) * 2008-09-26 2010-04-01 Juan Carlos Jimenez Online Content Editing of Dynamic Websites
CN102118504A (zh) * 2011-02-28 2011-07-06 中兴通讯股份有限公司 移动终端浏览器调用本地应用的方法及装置
CN104809213A (zh) * 2015-04-29 2015-07-29 努比亚技术有限公司 启动应用软件客户端的方法、装置和系统
CN105897902A (zh) * 2016-05-05 2016-08-24 北京思特奇信息技术股份有限公司 一种通过浏览器启动本地应用的方法及系统

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1407780A (zh) * 2001-08-13 2003-04-02 国际商业机器公司 在多种终端设备访问服务内容时保持过程持续性的方法和设备
US20090132690A1 (en) * 2007-11-20 2009-05-21 Retail Information Systems Pty Ltd On-Demand Download Network
US20100229045A1 (en) * 2009-03-09 2010-09-09 Quantia Communications, Inc. Computer Method and Apparatus Providing Invocation of Device-Specific Application Through a Generic HTTP Link
CN101576989A (zh) * 2009-06-09 2009-11-11 阿里巴巴集团控股有限公司 移动终端中实现支付的方法及移动设备
US8601363B2 (en) * 2009-07-20 2013-12-03 Facebook, Inc. Communicating information about a local machine to a browser application
US20110283259A1 (en) * 2009-10-07 2011-11-17 Jeffrey Lawson Method and system for creating a platform application with multiple applets
CN102137123A (zh) * 2010-01-25 2011-07-27 腾讯科技(北京)有限公司 实现移动终端上不同应用程序的进程之间通信的装置和方法
US20120317172A1 (en) * 2011-06-13 2012-12-13 International Business Machines Corporation Mobile web app infrastructure
CA2854142A1 (en) * 2011-11-01 2013-05-10 Google Inc. Launching applications from webpages
US8769524B2 (en) * 2011-12-09 2014-07-01 Disney Enterprises, Inc. HTML directed adaptive features for mobile applications
JP5974546B2 (ja) * 2012-03-01 2016-08-23 大日本印刷株式会社 リーダライタ、アプリケーション起動確認方法、及びアプリケーション起動確認プログラム
CN102694866B (zh) * 2012-06-01 2015-02-25 北京首钢自动化信息技术有限公司 一种分布式网络环境中的服务请求代理系统
US20140006517A1 (en) * 2012-07-02 2014-01-02 WUPIMA, Inc. System and method for social invitations to facilitate playing and sharing of mobile application or mobile game on mobile device
US9524198B2 (en) * 2012-07-27 2016-12-20 Google Inc. Messaging between web applications
US9338007B1 (en) * 2012-10-26 2016-05-10 Google Inc. Secure delegated authentication for applications
CN103810033B (zh) * 2012-11-15 2018-01-30 腾讯科技(深圳)有限公司 一种检测用程序启动的方法和装置
CN103942225B (zh) * 2013-01-23 2018-06-08 阿里巴巴集团控股有限公司 一种混合型应用客户端的资源调用方法、客户端及系统
US9203891B2 (en) * 2013-03-13 2015-12-01 Qualcomm Incorporated System and method to enable web property access to a native application
US9530116B2 (en) * 2013-05-28 2016-12-27 Verizon Patent And Licensing Inc. Finite state machine-based call manager for web-based call interaction
US9742900B2 (en) * 2013-07-25 2017-08-22 Xiaomi Inc. Method, terminal device and storage medium for displaying information
CN104376009B (zh) * 2013-08-14 2019-11-05 腾讯科技(深圳)有限公司 微博页面的丰富化方法、系统和装置
TWI530129B (zh) * 2014-02-14 2016-04-11 群暉科技股份有限公司 用來管理固定網址存取之方法、裝置、與計算機程式產品
CN104519050B (zh) * 2014-11-14 2019-03-12 百度在线网络技术(北京)有限公司 登录方法和登录系统
JP6358063B2 (ja) * 2014-12-02 2018-07-18 富士通株式会社 要求送信方法、情報処理装置、及びプログラム
US10025913B2 (en) * 2015-02-27 2018-07-17 Dropbox, Inc. Cross-application authentication on a content management system
FI125649B (en) * 2015-03-05 2015-12-31 Piceasoft Oy Method and apparatus for generating a data stream between units
JP6447297B2 (ja) * 2015-03-26 2019-01-09 富士通株式会社 通信方法、情報処理装置、及びプログラム
CN105119894B (zh) * 2015-07-16 2018-05-25 上海慧银信息科技有限公司 基于硬件安全模块的通信系统及通信方法
CN106469151B (zh) * 2015-08-14 2022-02-11 腾讯科技(深圳)有限公司 应用服务信息关联的方法、应用关联平台服务器和客户端
US20170085609A1 (en) * 2015-09-23 2017-03-23 Cc Media Network Limited Extending a web browser's application program interface through native code
US10180833B2 (en) 2015-12-31 2019-01-15 Samsung Electronics Co., Ltd. Cooperative web-assisted deep link redirection
US10152590B2 (en) * 2016-01-04 2018-12-11 Oracle International Corporation Implementing a WebSocket server to circumvent access controls, by a web browser, on a web application
CN107370778B (zh) 2016-05-11 2020-06-30 阿里巴巴集团控股有限公司 一种启动应用的方法和系统
JP7081210B2 (ja) * 2018-02-28 2022-06-07 ブラザー工業株式会社 アプリケーションプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050171950A1 (en) * 2004-01-29 2005-08-04 Dumitru Marius M. Managing application status information for a computer application
US20100083102A1 (en) * 2008-09-26 2010-04-01 Juan Carlos Jimenez Online Content Editing of Dynamic Websites
CN102118504A (zh) * 2011-02-28 2011-07-06 中兴通讯股份有限公司 移动终端浏览器调用本地应用的方法及装置
CN104809213A (zh) * 2015-04-29 2015-07-29 努比亚技术有限公司 启动应用软件客户端的方法、装置和系统
CN105897902A (zh) * 2016-05-05 2016-08-24 北京思特奇信息技术股份有限公司 一种通过浏览器启动本地应用的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3457301A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112579264A (zh) * 2019-09-30 2021-03-30 上海游昆信息技术有限公司 一种应用程序跳转的方法、终端及计算机存储介质
CN112579264B (zh) * 2019-09-30 2023-03-10 上海游昆信息技术有限公司 一种应用程序跳转的方法、终端及计算机存储介质
CN111506370A (zh) * 2020-03-09 2020-08-07 平安普惠企业管理有限公司 Ios系统上h5页面跳转方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
US20200125624A1 (en) 2020-04-23
SG11201809338UA (en) 2018-11-29
SG10202108617XA (en) 2021-09-29
EP3457301A4 (en) 2019-12-11
MY190566A (en) 2022-04-27
CN111835864A (zh) 2020-10-27
JP2019519036A (ja) 2019-07-04
JP6932142B2 (ja) 2021-09-08
US11210365B2 (en) 2021-12-28
KR102297817B1 (ko) 2021-09-07
US20190095541A1 (en) 2019-03-28
CN111835864B (zh) 2023-04-25
US11170068B2 (en) 2021-11-09
TW201740268A (zh) 2017-11-16
KR20190008267A (ko) 2019-01-23
EP3457301A1 (en) 2019-03-20
CN107370778A (zh) 2017-11-21
CN107370778B (zh) 2020-06-30
PH12018502358A1 (en) 2019-03-25
TWI664575B (zh) 2019-07-01

Similar Documents

Publication Publication Date Title
CN107370778B (zh) 一种启动应用的方法和系统
TWI651651B (zh) 啟動應用程式的方法和系統
US9699625B2 (en) Push notification middleware
CN106250434B (zh) 加载网页的方法及装置
CN107092475B (zh) 一种交互控件的调用方法及装置
CN107168960B (zh) 一种业务执行方法及装置
US20180240118A1 (en) Bridge for Communicating Data Outside of a Mobile Application
CN107016282B (zh) 一种信息处理方法及装置
CN107479868B (zh) 一种界面加载方法、装置及设备
CN107678805A (zh) 一种应用程序接口的调用方法和装置
HK1246998B (zh) 一种启动应用的方法和系统
CN113934474A (zh) 一种业务处理方法、装置和电子设备
CN114579216A (zh) 一种小程序能力使用方法、装置以及设备
HK1246998A1 (zh) 一种启动应用的方法和系统
CN112905448A (zh) 嵌套页面性能测试方法、设备及存储介质
HK1246996A1 (zh) 一种启动应用的方法和系统
HK1246996B (zh) 一种启动应用的方法和系统
CN115168766A (zh) 一种用于跳转页面的方法、设备、介质及程序产品

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018559711

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17795482

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20187035144

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2017795482

Country of ref document: EP

Effective date: 20181211