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

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

Info

Publication number
TW201740268A
TW201740268A TW106108583A TW106108583A TW201740268A TW 201740268 A TW201740268 A TW 201740268A TW 106108583 A TW106108583 A TW 106108583A TW 106108583 A TW106108583 A TW 106108583A TW 201740268 A TW201740268 A TW 201740268A
Authority
TW
Taiwan
Prior art keywords
local
local application
application
server
request
Prior art date
Application number
TW106108583A
Other languages
English (en)
Other versions
TWI664575B (zh
Inventor
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 TW201740268A publication Critical patent/TW201740268A/zh
Application granted granted Critical
Publication of TWI664575B publication Critical patent/TWI664575B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • 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
    • 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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
    • 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

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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本發明實施例公開了一種啟動應用程式的方法和系統。該方法一實施例包括:第一本地應用程式打開網頁頁面,嘗試喚起第二本地應用程式;第二本地應用程式啟動本機伺服器;第一本地應用程式發送引用JS請求至該本機伺服器;第一本地應用程式如果接收到該本機伺服器返回的回應則停止跳轉到引導下載頁面。利用本發明實施例,可以使打開的頁面(乃至第一本地應用程式)能夠確認所在終端已安裝相應應用程式(第二本地應用程式)。

Description

啟動應用程式的方法和系統
本發明涉及電腦軟體技術領域,尤其涉及一種啟動應用程式的方法和系統。
行動端平臺上可以提供基於該行動端作業系統開發的應用程式,以完成各種面向用戶的功能的實現。例如,蘋果的IOS平臺提供基於IOS系統的行動端應用程式,Google的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%3 d2000118%26version%3d1.5.1
其中,zmVerify%3a%2f%2fschemeApi%2fstartApp%3fbund1eId%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. 如請求項14所述的系統,其中,該第一本地應用程式發送引用JS請求中包括端口號,該端口號為預設值或第一本地應用程式與第二本地應用程式開啟的本機伺服器預先協商好的端口號。
  17. 如請求項16所述的系統,其中:第二本地應用程式啟動本機伺服器過程中將端口號設置為預先協商好的一組端口號中的第一端口號;第一本地應用程式發送引用JS請求中包括預先協商好的一組端口號中的第一端口號。
  18. 如請求項17所述的系統,其中:第二本地應用程式啟動本機伺服器,如果設置的第一端口號已被佔用,則設置端口號為預先協商好的一組端口號中的第二端口號;第一本地應用程式通過第一端口號發送引用JS請求,如果在預設時長內沒有接收到該本機伺服器返回的回應,則通過該預先協商好的一組端口號中的第二端口號發送引用JS請求。
  19. 如請求項11所述的系統,其中,該第一本地應用程式在接收到該本機伺服器返回的回應時停止跳轉到引導下載頁面,包括:第一本地應用程式如果在預設回應時間內接收到該本 機伺服器返回的回應,則停止跳轉到引導下載頁面。
  20. 如請求項19所述的系統,其中,第一本地應用程式如果在預設回應時間內接沒有收到該本機伺服器返回的回應,則跳轉到引導下載頁面。
TW106108583A 2016-05-11 2017-03-15 啟動應用程式的方法和系統 TWI664575B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
TW201740268A true TW201740268A (zh) 2017-11-16
TWI664575B TWI664575B (zh) 2019-07-01

Family

ID=60266184

Family Applications (1)

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

Country Status (10)

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

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111835864B (zh) 2016-05-11 2023-04-25 创新先进技术有限公司 一种启动应用的方法和系统
CN109783742B (zh) * 2018-12-14 2023-08-22 平安科技(深圳)有限公司 用于开发辅助的页面跳转方法、装置和计算机设备
CN109857478B (zh) * 2019-01-31 2022-03-25 北京小米移动软件有限公司 目标应用程序的运行方法、装置及可读存储介质
US10938923B2 (en) * 2019-04-17 2021-03-02 Home Depot Product Authority, Llc Customizable router for managing traffic between application programming interfaces
CN112579264B (zh) * 2019-09-30 2023-03-10 上海游昆信息技术有限公司 一种应用程序跳转的方法、终端及计算机存储介质
CN111273950B (zh) * 2019-12-31 2023-03-21 百度国际科技(深圳)有限公司 应用唤起方法、装置、电子设备及计算机可读存储介质
CN116361113A (zh) * 2020-02-24 2023-06-30 支付宝(杭州)信息技术有限公司 应用状态获取方法、装置、电子设备及可读存储介质
CN111506370B (zh) * 2020-03-09 2024-06-21 平安普惠企业管理有限公司 Ios系统上h5页面跳转方法、装置、计算机设备和存储介质
CN112468611B (zh) * 2020-11-27 2023-04-21 深圳市欢太科技有限公司 应用程序启动方法、终端设备及计算机存储介质
CN113641940B (zh) * 2021-10-13 2022-01-25 北京新氧科技有限公司 页面跳转方法、装置、系统、设备及存储介质
CN114185627A (zh) * 2021-10-22 2022-03-15 北京健康之家科技有限公司 程序启动反馈方法、装置、终端设备、服务器及存储介质

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1407780A (zh) * 2001-08-13 2003-04-02 国际商业机器公司 在多种终端设备访问服务内容时保持过程持续性的方法和设备
US7266550B2 (en) * 2004-01-29 2007-09-04 Sap Aktiengesellschaft Managing application status information for a computer application
US20090132690A1 (en) * 2007-11-20 2009-05-21 Retail Information Systems Pty Ltd On-Demand Download Network
US20100083102A1 (en) * 2008-09-26 2010-04-01 Juan Carlos Jimenez Online Content Editing of Dynamic Websites
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 腾讯科技(北京)有限公司 实现移动终端上不同应用程序的进程之间通信的装置和方法
CN102118504B (zh) * 2011-02-28 2014-12-10 中兴通讯股份有限公司 移动终端浏览器调用本地应用的方法及装置
US20120317172A1 (en) * 2011-06-13 2012-12-13 International Business Machines Corporation Mobile web app infrastructure
KR102005054B1 (ko) * 2011-11-01 2019-07-29 구글 엘엘씨 웹페이지들로부터의 어플리케이션 런칭
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 streaming data between devices
JP6447297B2 (ja) * 2015-03-26 2019-01-09 富士通株式会社 通信方法、情報処理装置、及びプログラム
CN104809213B (zh) * 2015-04-29 2017-04-05 努比亚技术有限公司 启动应用软件客户端的方法、装置和系统
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
CN105897902B (zh) * 2016-05-05 2018-10-19 北京思特奇信息技术股份有限公司 一种通过浏览器启动本地应用的方法及系统
CN111835864B (zh) 2016-05-11 2023-04-25 创新先进技术有限公司 一种启动应用的方法和系统
JP7081210B2 (ja) * 2018-02-28 2022-06-07 ブラザー工業株式会社 アプリケーションプログラム

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI664575B (zh) 啟動應用程式的方法和系統
TWI651651B (zh) 啟動應用程式的方法和系統
US9699625B2 (en) Push notification middleware
US10445396B2 (en) Device, method, and graphical user interface for extending functionality of a host application to another application
CN106250434B (zh) 加载网页的方法及装置
US8843820B1 (en) Content script blacklisting for use with browser extensions
Brunette et al. Open data kit sensors: a sensor integration framework for android at the application-level
US10509644B2 (en) Method and system for controlling integrated software components
JP5985631B2 (ja) 信頼レベルのアクティブ化
CN107092475B (zh) 一种交互控件的调用方法及装置
US20180240118A1 (en) Bridge for Communicating Data Outside of a Mobile Application
CN111212183B (zh) 一种用于运行寄宿应用的方法、设备及计算机可读介质
CN107678805A (zh) 一种应用程序接口的调用方法和装置
CN110333914B (zh) 一种用于执行目标操作的方法与设备
CN113934474A (zh) 一种业务处理方法、装置和电子设备
Accenture Internals of Firefox Mobile Operating System with NFC Components