TW201740267A - 啟動應用程式的方法和系統 - Google Patents

啟動應用程式的方法和系統 Download PDF

Info

Publication number
TW201740267A
TW201740267A TW106108381A TW106108381A TW201740267A TW 201740267 A TW201740267 A TW 201740267A TW 106108381 A TW106108381 A TW 106108381A TW 106108381 A TW106108381 A TW 106108381A TW 201740267 A TW201740267 A TW 201740267A
Authority
TW
Taiwan
Prior art keywords
local
application
local application
socket
websocket
Prior art date
Application number
TW106108381A
Other languages
English (en)
Other versions
TWI651651B (zh
Inventor
Tian Wang
Ming-Bo Shao
Original Assignee
Alibaba Group Services 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 Services Ltd filed Critical Alibaba Group Services Ltd
Publication of TW201740267A publication Critical patent/TW201740267A/zh
Application granted granted Critical
Publication of TWI651651B publication Critical patent/TWI651651B/zh

Links

Classifications

    • 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; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本發明實施例揭示了一種啟動應用程式的方法和系統。所述方法一實施例包括:第一本地應用程式打開HTML5網頁頁面,喚起第二本地應用程式,並啟動webSocket嘗試連接本地Socket;第二本地應用程式啟動本地Socket;第一本地應用程式如果透過webSocket連接到所述本地Socket,則停止跳轉到下載第二本地應用程式的引導頁面。利用本發明實施例,可以使打開的HTML5頁面能夠確認所在終端已安裝相應應用程式。

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元件跳轉的頁面仍然會提示 用戶下載淘寶應用程式。
可見,上述現有技術,打開網頁並喚起對應應用程式後,打開的網頁無法獲知所在行動終端上已安裝相應應用程式。由此,無論所在行動終端是否已安裝相應應用程式,均會引導至應用程式下載頁面,增加了通信過程,且浪費資源,影響用戶感受。
本發明實施例的目的是提供一種啟動應用程式的方法和系統,以使打開的頁面能夠確認所在終端已安裝相應應用程式。
為解決上述技術問題,本發明實施例是這樣實現的:一種啟動應用程式的方法,包括:第一本地應用程式打開HTML5網頁頁面,喚起第二本地應用程式,並啟動webSocket嘗試連接本地Socket;第二本地應用程式啟動本地Socket;第一本地應用程式如果透過webSocket連接到所述本地Socket,則停止跳轉到下載第二本地應用程式的引導頁面。
一種啟動應用程式的系統,包括:第一本地應用程式,用於打開HTML5網頁頁面,喚起第二本地應用程式,並啟動webSocket嘗試連接本地Socket;如果透過webSocket連接到所述本地Socket,則停止跳轉到下載第二本地應用程式的引導頁面; 第二本地應用程式,用於啟動本地Socket。
由以上本發明實施例提供的技術方案可見,第一本地應用程式打開HTML5網頁頁面後,可以啟動webSocket嘗試連接本地Socket。第二本地應用程式被喚起後可以啟動本地Socket。這樣,第一本地應用程式可以透過webSocket連接所述本地Socket。第一本地應用程式如果透過webSocket連接到所述本地Socket,則可以判斷第二本地應用程式已被喚起,從而不再需要第一本地應用程式跳轉到某個下載引導頁面。進而,第一本地應用程式可以停止跳轉到下載第二本地應用程式的引導頁面。
110、120、130‧‧‧方法步驟
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明中記載的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明一種啟動應用程式的方法實施例的流程圖。
本發明實施例提供一種啟動應用程式的方法和系統。
為了使本技術領域的人員更好地理解本發明中的技術 方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本發明保護的範圍。
前述現有技術中,打開網頁的瀏覽器應用程式或程式透過webView元件打開網頁的本地應用程式A(例如前述瀏覽器應用程式或購票應用程式),一般與喚起的本地應用程式B不是同一應用程式,也就不在同一進程。現有技術中缺乏喚起過程中的跨進程通信的方式,本地應用程式A也就不能獲知本地應用程式B已被喚起,從而本地應用程式A仍然跳轉至應用程式B的下載第二本地應用程式的引導頁面。
本發明實施例提供一種啟動應用程式的方法,圖1示出了該實施例的實現流程,如圖1所示,包括:
S110:第一本地應用程式打開HTML5網頁頁面,喚起第二本地應用程式,並啟動webSocket嘗試連接本地Socket。
HTML5網頁頁面的連結位址被以點擊等操作觸發打開時,相應頁面可以載入瀏覽器應用程式或本地應用程式的WebView元件中。瀏覽器應用程式或本地應用程式的WebView元件可以將所述HTML5網頁頁面的位址組裝為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具備例如如下形式: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://schemeApi/startApp?bundleId=2000118&version=1.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應用程式打開某個連結。由於整合有實現HTML5網頁頁面瀏覽功能的webView元件,該過程可以不必啟動默認的瀏覽器應用程式。
上述第一本地應用程式與第二本地應用程式一般位於不同的進程,因而無法實現直接的通信。
此外,第一本地應用程式打開HTML5網頁頁面後,還可以啟動webSocket並嘗試連接本地Socket。WebSocket是HTML5的一種協議。HTML5定義了WebSocket協定,能更好的節省伺服器資源和頻寬並達到即時通訊。WebSocket可以實現瀏覽器與伺服器之間的全雙工通信(full-duplex)。透過WebSocket,瀏覽器和伺服器只需要做一個握手的動作,之後瀏覽器和伺服器之間就可以形成一條快速通道,兩者之間就直接可以資料互相傳送。
第一本地應用程式透過所述URI打開網頁頁面過程 中,可以透過所述URI中指示的參數獲得啟動的本地Socket的地址和埠。從而第一本地應用程式啟動的webSocket可以嘗試連接本地Socket。
S120:第二本地應用程式啟動本地Socket。
本發明實施例中,第二本地應用程式被喚起後,可以啟動一個本地Socket。具體的,第二本地應用程式透過所述URI打開網頁頁面過程中,可以透過所述URI中指示啟動本地Socket的參數來啟動本地Socket。所述參數例如包括前述的schemeApi,startapp,bundleID,version之類。這些參數可以用於標明第二本地應用程式喚起後打開的入口之類的內容。例如對於支付寶應用程式來說,在花唄入口打開。
啟動的本地Socket可以處於等待連接狀態,並可以是一項服務。
Socket又稱"通訊端",是作業系統提供的通信層的一組抽象API,用於描述IP位址和埠,是一個通信鏈的控制碼。應用程式透過通訊端向網路發出請求或者應答網路請求。應用程式通常透過"通訊端"向網路發出請求或者應答網路請求。Socket可以實現同一主機的不同進程間的通信,且建立的通信可以是雙向通信。
應用程式(即進程)透過系統調用與某埠建立連接(binding)後,傳輸層傳給該埠的資料都被相應的進程所接收,相應的進程發給傳輸層的資料都透過該埠輸出。
此外,第二本地應用程式被喚起後,可以打開前述連 結位址對應的HTML5網頁頁面,從而在第二本地應用程式中提供用戶進行瀏覽或操作。
S130:第一本地應用程式如果透過webSocket連接到所述本地Socket,則停止跳轉到下載第二本地應用程式的引導頁面。
S110中,第一本地應用程式打開HTML5網頁頁面後,可以啟動webSocket嘗試連接本地Socket。S120中第二本地應用程式啟動本地Socket。這樣,S130中,第一本地應用程式可以透過webSocket連接所述本地Socket。
基於webSocket的通訊原理,可以採用握手方式與所述本地Socket進行通信。透過握手成功的確認,webSocket即可以判斷連接到本地Socket。
第一本地應用程式如果透過webSocket連接到所述本地Socket,則可以判斷第二本地應用程式已被喚起,從而不再需要第一本地應用程式跳轉到某個下載第二本地應用程式的引導頁面。進而,第一本地應用程式可以停止跳轉到下載第二本地應用程式的引導頁面。而且,由於啟動的webSocket連接本地Socket是本地操作,不需要網路傳輸或等待網路相應,因此可以大大減少處理判斷時間。
第二本地應用程式啟動本地Socket需要一定的時間,因此第一本地應用程式可以不必在啟動webSocket後即嘗試連接所述本地Socket,而是可以在第一預設時長之後進行。即S110中,第一本地應用程式可以打開HTML5 網頁頁面第一預設時長之後啟動webSocket並嘗試連接本地Socket。如果第一本地應用程式在所述第一預設時長之後透過webSocket連接到所述本地Socket,則停止跳轉到下載第二本地應用程式的引導頁面。所述預設時長例如設定為800ms或1s。
此外,第一本地應用程式如果沒有能透過webSocket成功連接到所述本地Socket,則可以跳轉到下載第二本地應用程式的引導頁面。具體的,第一本地應用程式如果沒有能成功連接到所述本地Socket,一般可以接收到一個錯誤提示。這樣,第一本地應用程式如果透過webSocket連接到所述本地Socket時接收到錯誤提示,則可以跳轉到下載第二本地應用程式的引導頁面。跳轉到的下載第二本地應用程式的引導頁面可以在網頁邏輯中加以設定,並且已在現有技術中實現,不再贅述。
第一本地應用程式啟動的webSocket與第二本地應用程式啟動的本地Socket可以採用網頁頁面連結中指定的一個埠或指定的一組埠中的一個,這樣的埠可以是網頁頁面連結中的一個參數。在組裝為URI的過程中,同樣可以體現。這樣,第二本地應用程式啟動的本地Socket可以採用指定的埠。
此外,第一本地應用程式啟動的webSocket與第二本地應用程式啟動的本地Socket可以採用預先協商好的一個埠,也可以是預先協商好的一組埠中的一個。例如,S120中第二本地應用程式啟動的本地Socket所用的埠為 一組埠中的一個,這一組埠包括8888,8889和8890。有時8888埠可能已被其他應用程式佔用,這時,S120中第二本地應用程式啟動的本地Socket,可以發現8888這一埠已被佔用,從而可以改為8889這一埠。這樣,第一本地應用程式啟動的webSocket也是8888埠,則無法連接到本地Socket。因此,第一本地應用啟動的webSocket在第二預設時長內,例如20ms內,如果沒有成功連接到本地Socket,可以更換預設埠組中的另一埠再次連接本地Socket。當再次連接本地Socket的連接成功,第一本地應用程式可以停止跳轉到下載第二本地應用程式的引導頁面。如果第一本地應用程式啟動的webSocket使用預設的埠組中的所有埠均在第二預設時長內沒有接收成功連接到所述本地Socket,可以跳轉到下載第二本地應用程式的引導頁面。
本發明還提供一種啟動應用程式的系統實施例,包括:一種啟動應用程式的系統,包括:第一本地應用程式,用於打開HTML5網頁頁面,喚起第二本地應用程式,並啟動webSocket嘗試連接本地Socket;如果透過webSocket連接到所述本地Socket,則停止跳轉到下載第二本地應用程式的引導頁面;第二本地應用程式,用於啟動本地Socket。
較佳地,所述網頁頁面的連結位址被觸發打開時由第一本地應用程式打開對應的網頁頁面,所述第一本地應用 程式包括瀏覽器應用程式或整合WebView組件的本地應用程式。
較佳地,所述網頁頁面的連結位址被觸發打開時,第一本地應用程式將所述網頁頁面的位址組裝為URI,並喚起打開所述URI對應的第二本地應用程式。
較佳地,所述第一本地應用程式啟動webSocket嘗試連接本地Socket,包括:第一本地應用程式在打開所述HTML5網頁頁面第一預設時長之後啟動webSocket並嘗試連接本地Socket。
較佳地,第一本地應用程式如果沒有能透過webSocket成功連接到所述本地Socket,則跳轉到下載第二本地應用程式的引導頁面。
較佳地,第一本地應用程式如果透過webSocket連接到所述本地Socket時接收到錯誤提示,則跳轉到下載第二本地應用程式的引導頁面。
較佳地,第二本地應用程式啟動本地Socket時如果採用的埠被佔用,則更換為預設埠組中的另一埠;相應地,第一本地應用程式啟動的webSocket在第二預設時長內如果沒有成功連接到本地Socket,則更換預設埠組中的另一埠再次連接本地Socket。
較佳地,第一本地應用程式啟動的webSocket使用預設的埠組中的所有埠均在第二預設時長內沒有接收成功連接到所述本地Socket,跳轉到下載第二本地應用程式的引導頁面。
在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 (18)

  1. 一種啟動應用程式的方法,其特徵在於,該方法包括:第一本地應用程式打開HTML5網頁頁面,喚起第二本地應用程式,並啟動webSocket嘗試連接本地Socket;第二本地應用程式啟動本地Socket;以及第一本地應用程式如果透過webSocket連接到該本地Socket,則停止跳轉到下載第二本地應用程式的引導頁面。
  2. 如申請專利範圍第1項所述的方法,其中,該網頁頁面的連結位址被觸發打開時由第一本地應用程式打開對應的網頁頁面,該第一本地應用程式包括瀏覽器應用程式或整合WebView組件的本地應用程式。
  3. 如申請專利範圍第1項所述的方法,其中,該網頁頁面的連結位址被觸發打開時,第一本地應用程式將該網頁頁面位址中所包含的參數組裝為URI,並喚起打開該URI對應的第二本地應用程式。
  4. 如申請專利範圍第3項所述的方法,其中,該參數包括指定的埠號。
  5. 如申請專利範圍第1項所述的方法,其中,該第一本地應用程式啟動webSocket嘗試連接本地Socket,包括:第一本地應用程式在打開該HTML5網頁頁面第一預設時長之後啟動webSocket並嘗試連接本地Socket。
  6. 如申請專利範圍第1項所述的方法,其中,該方法還包括:第一本地應用程式如果沒有能透過webSocket成功連接到該本地Socket,則跳轉到下載第二本地應用程式的引導頁面。
  7. 如申請專利範圍第6項所述的方法,其中,該方法還包括:第一本地應用程式如果透過webSocket連接到該本地Socket時接收到錯誤提示,則跳轉到下載第二本地應用程式的引導頁面。
  8. 如申請專利範圍第1項所述的方法,其中,第二本地應用程式啟動本地Socket時如果採用的埠被佔用,則更換為預設埠組中的另一埠;相應地,第一本地應用程式啟動的webSocket在第二預設時長內如果沒有成功連接到本地Socket,則更換預設埠組中的另一埠再次連接本地Socket。
  9. 如申請專利範圍第8項所述的方法,其中,第一本地應用程式啟動的webSocket使用預設的埠組中的所有埠均在第二預設時長內沒有接收成功連接到該本地Socket,跳轉到下載第二本地應用程式的引導頁面。
  10. 一種啟動應用程式的系統,其特徵在於,該系統包括:第一本地應用程式,用於打開HTML5網頁頁面,喚起第二本地應用程式,並啟動webSocket嘗試連接本地 Socket;如果透過webSocket連接到該本地Socket,則停止跳轉到下載第二本地應用程式的引導頁面;以及第二本地應用程式,用於啟動本地Socket。
  11. 如申請專利範圍第10項所述的系統,其中,該網頁頁面的連結位址被觸發打開時由第一本地應用程式打開對應的網頁頁面,該第一本地應用程式包括瀏覽器應用程式或整合WebView組件的本地應用程式。
  12. 如申請專利範圍第10項所述的系統,其中,該網頁頁面的連結位址被觸發打開時,第一本地應用程式將該網頁頁面位址中所包含的參數組裝為URI,並喚起打開該URI對應的第二本地應用程式。
  13. 如申請專利範圍第12項所述的系統,其中,該參數包括指定的埠號。
  14. 如申請專利範圍第10項所述的系統,其中,該第一本地應用程式啟動webSocket嘗試連接本地Socket,包括:第一本地應用程式在打開該HTML5網頁頁面第一預設時長之後啟動webSocket並嘗試連接本地Socket。
  15. 如申請專利範圍第10項所述的系統,其中,第一本地應用程式如果沒有能透過webSocket成功連接到該本地Socket,則跳轉到下載第二本地應用程式的引導頁面。
  16. 如申請專利範圍第10項所述的系統,其中,第一本地應用程式如果透過webSocket連接到該本地Socket 時接收到錯誤提示,則跳轉到下載第二本地應用程式的引導頁面。
  17. 如申請專利範圍第10項所述的系統,其中,第二本地應用程式啟動本地Socket時如果採用的埠被佔用,則更換為預設埠組中的另一埠;相應地,第一本地應用程式啟動的webSocket在第二預設時長內如果沒有成功連接到本地Socket,則更換預設埠組中的另一埠再次連接本地Socket。
  18. 如申請專利範圍第17項所述的系統,其中,第一本地應用程式啟動的webSocket使用預設的埠組中的所有埠均在第二預設時長內沒有接收成功連接到該本地Socket,跳轉到下載第二本地應用程式的引導頁面。
TW106108381A 2016-05-11 2017-03-14 啟動應用程式的方法和系統 TWI651651B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
TW201740267A true TW201740267A (zh) 2017-11-16
TWI651651B TWI651651B (zh) 2019-02-21

Family

ID=60266438

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106108381A TWI651651B (zh) 2016-05-11 2017-03-14 啟動應用程式的方法和系統

Country Status (10)

Country Link
US (2) US10698700B2 (zh)
EP (1) EP3457666B1 (zh)
JP (1) JP6995780B2 (zh)
KR (1) KR102229852B1 (zh)
CN (1) CN107370775B (zh)
MY (1) MY191467A (zh)
PH (1) PH12018502371A1 (zh)
SG (1) SG11201809851WA (zh)
TW (1) TWI651651B (zh)
WO (1) WO2017193746A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108206A (zh) * 2017-12-08 2018-06-01 北京小米移动软件有限公司 移动支付接入方法及装置
CN108132814A (zh) * 2017-12-22 2018-06-08 平安养老保险股份有限公司 应用程序的页面加载方法、装置、计算机设备和存储介质
CN109861903B (zh) * 2018-12-28 2022-01-07 微梦创科网络科技(中国)有限公司 一种基于app应用的链接发送方法及装置
CN111385265A (zh) * 2018-12-29 2020-07-07 北京奇虎科技有限公司 一种iOS系统中的通信方法和装置
CN111273950B (zh) * 2019-12-31 2023-03-21 百度国际科技(深圳)有限公司 应用唤起方法、装置、电子设备及计算机可读存储介质
CN111506370B (zh) * 2020-03-09 2024-06-21 平安普惠企业管理有限公司 Ios系统上h5页面跳转方法、装置、计算机设备和存储介质
US11100511B1 (en) * 2020-05-18 2021-08-24 Capital One Services, Llc Application-based point of sale system in mobile operating systems
CN114125017B (zh) * 2020-08-10 2024-04-09 腾讯科技(深圳)有限公司 媒体信息的显示方法和装置、存储介质及电子设备
CN112559213B (zh) * 2020-12-18 2023-07-21 深圳云之家网络有限公司 应用通信方法、装置、计算机设备和存储介质

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7508812B2 (en) * 2005-01-28 2009-03-24 Research In Motion Limited Socket management for always-on data connections
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
CN101516088A (zh) * 2009-04-03 2009-08-26 酷派软件技术(深圳)有限公司 一种数据传输的方法及系统、一种服务器及移动通信终端
US9459936B2 (en) * 2009-05-01 2016-10-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
US20110153714A1 (en) * 2009-12-17 2011-06-23 Robert Houben Secure remote web popup
US9081633B2 (en) * 2010-05-24 2015-07-14 Microsoft Technology Licensing, Llc Remote application connection sharing
EP2614620A1 (en) * 2010-09-07 2013-07-17 Apptui Inc. Control of computing devices and user interfaces
US9503529B2 (en) * 2011-04-04 2016-11-22 Avaya Inc. System and method to transport HTTP over XMPP
US9058175B2 (en) * 2011-06-07 2015-06-16 The Mathworks, Inc. Parameter promotion in a block diagram modeling environment
CN102843398B (zh) * 2011-06-23 2017-08-25 索尼公司 遥控设备、远端设备、多媒体系统及其控制方法
US9582598B2 (en) * 2011-07-05 2017-02-28 Visa International Service Association Hybrid applications utilizing distributed models and views apparatuses, methods and systems
US9286471B2 (en) * 2011-10-11 2016-03-15 Citrix Systems, Inc. Rules based detection and correction of problems on mobile devices of enterprise users
CN102970346B (zh) * 2012-11-01 2016-04-20 北京奇虎科技有限公司 浏览器进行软件下载的方法和浏览器
CN103810033B (zh) * 2012-11-15 2018-01-30 腾讯科技(深圳)有限公司 一种检测用程序启动的方法和装置
US9203891B2 (en) * 2013-03-13 2015-12-01 Qualcomm Incorporated System and method to enable web property access to a native application
CN103269396B (zh) * 2013-05-02 2019-02-05 百度在线网络技术(北京)有限公司 一种对移动终端进行管理的方法和系统
US9300669B2 (en) * 2013-06-14 2016-03-29 Dell Products L.P. Runtime API framework for client-server communication
CA2917487A1 (en) * 2013-07-12 2015-01-15 Aquto Corporation Mobile advertising
US9330053B1 (en) * 2013-07-24 2016-05-03 Sprint Communications Company L.P. True push architecture for internet protocol notification
JP6242492B2 (ja) * 2013-08-23 2017-12-06 華為技術有限公司Huawei Technologies Co.,Ltd. 任意のネットワーク機能性クライアント又はサーバをhtml5アプリケーションにおいて有効にするためのシステム及びデバイス
KR102121472B1 (ko) * 2013-09-23 2020-06-17 삼성전자주식회사 기기 별 응용 프로그램간 통신을 위한 장치 및 방법
CN103747074B (zh) * 2013-12-31 2018-01-16 广州杰赛科技股份有限公司 基于Web服务器的移动监控系统
US20150244835A1 (en) * 2014-02-21 2015-08-27 Andrew T. Fausak Transcoding instance with multiple channels
US9516107B2 (en) * 2014-06-05 2016-12-06 Dropbox, Inc. Secure local server for synchronized online content management system
US9635491B2 (en) * 2014-07-10 2017-04-25 Sap Se Transient mobile application capture in a restricted area
US10009129B2 (en) * 2014-10-21 2018-06-26 Sharp Kabushiki Kaisha System with a companion device and a primary device
US9876849B2 (en) * 2014-11-05 2018-01-23 Google Llc Opening local applications from browsers
JP6044850B2 (ja) * 2014-12-02 2016-12-14 パナソニックIpマネジメント株式会社 情報端末、情報処理方法及び制御プログラム
CN104462478B (zh) * 2014-12-18 2019-07-02 北京奇虎科技有限公司 实现移动浏览器客户端与网页交互的方法、装置和客户端
US10757107B2 (en) * 2015-02-27 2020-08-25 Dropbox, Inc. Application-assisted login for a web browser
US20160337424A1 (en) * 2015-05-13 2016-11-17 Qualcomm Incorporated Transferring media data using a websocket subprotocol
US10110564B2 (en) * 2015-10-14 2018-10-23 Adobe Systems Incorporated Detecting application state using a DNS-controlled proxy
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
US10721120B2 (en) * 2016-03-08 2020-07-21 ZPE Systems, Inc. Infrastructure management device
JP6736943B2 (ja) * 2016-03-29 2020-08-05 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム及び情報配信システム
US10412130B2 (en) * 2016-04-04 2019-09-10 Hanwha Techwin Co., Ltd. Method and apparatus for playing media stream on web browser
US10686884B2 (en) * 2017-07-19 2020-06-16 Citrix Systems, Inc. Method for managing sessions using web sockets
US10552264B2 (en) 2017-09-27 2020-02-04 Western Digital Technologies, Inc. Hidden diagnostic partition
CA3022570C (en) * 2017-10-30 2022-06-14 Deltek, Inc. Dynamic content and cloud based content within collaborative electronic content creation and management tools
US10693945B2 (en) * 2018-01-24 2020-06-23 Vmware, Inc. File and folder redirection for virtual desktops via image scanning
WO2019240940A1 (en) * 2018-06-15 2019-12-19 Shure Acquisition Holdings, Inc. Systems and methods for integrated conferencing platform

Also Published As

Publication number Publication date
PH12018502371A1 (en) 2019-09-09
EP3457666A4 (en) 2019-04-03
EP3457666B1 (en) 2021-08-25
KR102229852B1 (ko) 2021-03-23
US20190095217A1 (en) 2019-03-28
US10866815B2 (en) 2020-12-15
MY191467A (en) 2022-06-28
TWI651651B (zh) 2019-02-21
SG11201809851WA (en) 2018-12-28
CN107370775A (zh) 2017-11-21
US20200326953A1 (en) 2020-10-15
JP6995780B2 (ja) 2022-01-17
JP2019516197A (ja) 2019-06-13
EP3457666A1 (en) 2019-03-20
CN107370775B (zh) 2020-04-28
US10698700B2 (en) 2020-06-30
WO2017193746A1 (zh) 2017-11-16
KR20190006530A (ko) 2019-01-18

Similar Documents

Publication Publication Date Title
TWI651651B (zh) 啟動應用程式的方法和系統
TWI664575B (zh) 啟動應用程式的方法和系統
US8601468B1 (en) Web-based applications using web extents
CN107092475B (zh) 一种交互控件的调用方法及装置
US20150026356A1 (en) Push notification middleware
US20180240118A1 (en) Bridge for Communicating Data Outside of a Mobile Application
US11102332B2 (en) Method and system for rendering content using templates
CN106843937B (zh) 一种通知对应App的调起方法及装置
WO2015070816A1 (zh) 应用程序推送方法、装置、设备及系统
CN111212183B (zh) 一种用于运行寄宿应用的方法、设备及计算机可读介质
Puder et al. Exposing native device APIs to web apps
CN107678805A (zh) 一种应用程序接口的调用方法和装置
Kalali et al. Developing RESTful services with JAX-RS 2.0, WebSockets, and JSON
KR20190020436A (ko) 하이브리드 앱 수행 방법, 사용자 단말 및 기록매체
CN113934474A (zh) 一种业务处理方法、装置和电子设备
Accenture Internals of Firefox Mobile Operating System with NFC Components
CN114579216A (zh) 一种小程序能力使用方法、装置以及设备
CN118796156A (zh) 跨平台桌面客户端、实现方法、电子设备及存储介质