KR102229852B1 - 애플리케이션을 시작하는 방법 및 시스템 - Google Patents

애플리케이션을 시작하는 방법 및 시스템 Download PDF

Info

Publication number
KR102229852B1
KR102229852B1 KR1020187035815A KR20187035815A KR102229852B1 KR 102229852 B1 KR102229852 B1 KR 102229852B1 KR 1020187035815 A KR1020187035815 A KR 1020187035815A KR 20187035815 A KR20187035815 A KR 20187035815A KR 102229852 B1 KR102229852 B1 KR 102229852B1
Authority
KR
South Korea
Prior art keywords
local
application
local application
socket
websocket
Prior art date
Application number
KR1020187035815A
Other languages
English (en)
Other versions
KR20190006530A (ko
Inventor
티안 왕
밍보 샤오
Original Assignee
어드밴스드 뉴 테크놀로지스 씨오., 엘티디.
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 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. filed Critical 어드밴스드 뉴 테크놀로지스 씨오., 엘티디.
Publication of KR20190006530A publication Critical patent/KR20190006530A/ko
Application granted granted Critical
Publication of KR102229852B1 publication Critical patent/KR102229852B1/ko

Links

Images

Classifications

    • 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
    • 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/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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)
  • Physics & Mathematics (AREA)
  • General 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

본원의 구현예는 애플리케이션을 시작하는 방법 및 시스템을 개시한다. 이 방법의 구현예는, 제1 로컬 애플리케이션에 의해, HTML5 웹 페이지를 오픈하고, 제2 로컬 애플리케이션을 호출하며, webSocket을 시작하여 로컬 소켓으로의 접속을 시도하는 단계와, 제2 로컬 애플리케이션에 의해, 로컬 소켓을 시작하는 단계와, 제1 로컬 애플리케이션이 webSocket을 이용하여 로컬 소켓에 접속하면, 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로의 이동을 정지하는 단계를 포함한다. 본원의 구현예에 따르면, 오픈된 HTML5는 해당하는 애플리케이션이 HTML5 페이지에 대응하는 단말기에 설치되었음을 확인할 수 있다.

Description

애플리케이션을 시작하는 방법 및 시스템
본원은 컴퓨터 소프트웨어 기술 분야에 관한 것이며, 구체적으로는 애플리케이션을 시작하는 방법 및 시스템에 관한 것이다.
모바일 단말기 플랫폼은 다양한 사용자 중심 기능(user-oriented function)을 구현하기 위해 모바일 단말기 운영 체제에 기반하여 개발된 애플리케이션을 제공할 수 있다. 예를 들어, Apple의 IOS 플랫폼은 IOS 시스템을 기반으로 하는 모바일 단말기 애플리케이션을 제공하며, Google의 ANDROID 플랫폼은 Android 시스템을 기반으로 하는 모바일 단말기 애플리케이션을 제공하고, Windows의 모바일 단말기 플랫폼은 Windows 시스템을 기반으로 하는 모바일 단말기 애플리케이션을 제공한다.
모바일 단말기 플랫폼 상의 애플리케이션은 다른 애플리케이션을 이용하여 시작될 수 있다. 예를 들어, URL 어드레스를 포함하는 단문 메시지가 단문 메시지 애플리케이션에서 수신되고, 사용자가 단문 메시지 내의 해당 URL 어드레스를 탭하면, 모바일 단말기가 웹 페이지를 오픈할 수 있다. 오픈되는 웹 페이지는 모바일 단말기의 디폴트 브라우저 애플리케이션을 이용하여 오픈될 수 있다. 다른 예로서, 결제 트랜잭션을 수행할 때, 모바일 단말기 상의 로컬 애플리케이션 A(예컨대, 티켓 구매 애플리케이션)는 결제 페이지를 통해 로컬 애플리케이션 B(에컨대, 결제 애플리케이션)을 시작하기 위해, 로컬 애플리케이션 A에 통합된 webView 컴포넌트를 이용하여 결제 페이지를 오픈할 수 있다.
특히, 예를 들어, 모바일 단말기의 단문 메시지 애플리케이션에서의 특정 단문 메시지는 ALIPAY로의 링크를 포함할 수 있다. 사용자가 단문 메시지 내의 링크를 탭하면, 모바일 단말기는 디폴트 브라우저 애플리케이션을 이용하여 해당 링크의 페이지를 오픈할 수 있다. 또한, 페이지가 스킴 URI를 사용함으로써 로컬 애플리케이션 B(예컨대, ALIPAY)의 호출을 시도할 수 있어, 사용자는 ALIPAY에서 작업을 수행할 수 있다. 스킴 URI는 시스템 레벨의 리소스 로케이션 메소드이며, Android, IOS 및 Windows 등의 모바일 플랫폼 시스템을 지원한다. 이전 예의 경우, ALIPAY를 호출한 후, 대부분의 모바일 플랫폼 시스템의 브라우저 애플리케이션에 의해 오픈된 페이지들은 대개 사라지지 않지만, 짧은 시간 내에 애플리케이션을 다운로드하기 위한 부팅 페이지로 이동한다. 이처럼, ALIPAY가 이미 모바일 단말기 상에 설치되어 있더라도, 브라우저가 이동하게 되는 페이지는 사용자에게 ALIPAY를 다운로드할 것을 촉구한다.
다른 예로, TAOBAO 상품으로의 링크는 모바일 단말기의 로컬 애플리케이션 A를 조작함으로써 오픈되는데, 예를 들어, 로컬 애플리케이션 A는 webView 컴포넌트를 이용하여 해당 링크의 페이지를 오픈할 수 있다. 또한, 페이지가 스킴 URI를 사용함으로써 로컬 애플리케이션 B(예컨대, TAOBAO)의 호출을 시도할 수 있어, 사용자는 TAOBAO에서 작업을 수행할 수 있다. 이전 예의 경우, TAOBAO를 호출한 후, 대부분의 모바일 플랫폼 시스템의 로컬 애플리케이션 A 내의 webView 컴포넌트에 의해 오픈된 페이지들은 대개 사라지지 않지만, 짧은 시간 내에 애플리케이션을 다운로드하기 위한 부팅 페이지로 이동한다. 이처럼, TAOBAO가 이미 모바일 단말기 상에 설치되어 있더라도, webView 컴포넌트를 이용하여 이동하게 되는 페이지는 사용자에게 TAOBAO를 다운로드할 것을 촉구한다.
종래기술에서는, 웹 페이지가 오픈되고 해당 애플리케이션이 호출된 후에, 오픈된 웹 페이지는 해당 애플리케이션이 이미 모바일 단말기에 설치되어 있는 것을 알 수 없음을 볼 수 있다. 이에, 해당 애플리케이션이 이미 모바일 단말기에 설치되어 있는지의 여부에 관계없이, 모바일 단말기는 애플리케이션 다운로딩 페이지로 안내된다. 따라서 통신 프로세스가 지연되고 리소스가 낭비되어 사용자 경험에 영향을 미친다.
본원의 구현예는 오픈된 페이지에 대응하는 해당 애플리케이션이 단말기 상에 설치되었음을 오픈된 페이지가 확인할 수 있도록 한, 애플리케이션을 시작하는 방법 및 시스템을 제공한다.
이전의 기술 문제를 해결하기 위해, 본원의 구현예는 다음과 같이 구현된다.
애플리케이션을 시작하는 방법은, 제1 로컬 애플리케이션에 의해, HTML5 웹 페이지를 오픈하고, 제2 로컬 애플리케이션을 호출하며, webSocket을 시작하여 로컬 소켓으로의 접속을 시도하는 단계와, 제2 로컬 애플리케이션에 의해, 로컬 소켓을 시작하는 단계와, 제1 로컬 애플리케이션이 webSocket을 이용하여 로컬 소켓에 접속하면, 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로의 이동(jumping)을 정지하는 단계를 포함한다.
애플리케이션을 시작하는 시스템은 제1 로컬 애플리케이션 및 제2 로컬 애플리케이션을 포함하고, 제1 로컬 애플리케이션은, HTML5 웹 페이지를 오픈하고, 제2 로컬 애플리케이션을 호출하며, webSocket을 시작하여 로컬 소켓으로의 접속을 시도하고, 제1 로컬 애플리케이션이 webSocket을 이용하여 로컬 소켓에 접속하면, 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로의 이동을 정지하도록 구성되며, 제2 로컬 애플리케이션을 로컬 소켓을 시작하도록 구성된다.
본원의 구현예에서 제공되는 이전 기술의 해결법으로부터, HTML5 웹 페이지를 오픈한 후에, 제1 로컬 애플리케이션이 webSocket을 시작하여 로컬 소켓으로의 접속을 시도할 수 있음을 볼 수 있다. 로컬 소켓은 제2 로컬 애플리케이션이 호출된 후에 시작될 수 있다. 이와 같이, 제1 로컬 애플리케이션은 webSocket을 이용하여 로컬 소켓에 접속할 수 있다. 제1 로컬 애플리케이션이 webSocket을 이용하여 로컬 소켓에 접속하면, 제2 로컬 애플리케이션이 호출되었음이 결정되어, 제1 로컬 애플리케이션은 특정 다운로드 부트 페이지로 이동할 필요가 없다. 뿐만 아니라, 제1 로컬 애플리케이션은 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로의 이동을 정지할 수 있다.
본원의 구현예 또는 종래기술의 기술적 해결법을 보다 명확하게 설명하기 위해, 구현예 또는 종래기술을 설명하는데 필요한 첨부 도면을 이하에 간략하게 설명한다. 사실상, 이하에서 설명하는 첨부 도면은 본원의 일부 구현예를 보여주는 것일 뿐이며, 당업자라면 창조적인 노력 없이 이들 첨부 도면으로부터 다른 도면들을 도출할 수도 있다.
도 1은 본원에 따른 애플리케이션 시작 방법의 구현예를 보여주는 흐름도이다.
본원의 구현예는 애플리케이션을 시작하는 방법 및 시스템을 제공한다.
당업자가 본원의 기술적 해결법을 더 잘 이해하게 하기 위해, 이하에서는 본원의 구현예의 첨부 도면을 참조하여 본원의 구현예의 기술적 해결법을 명확하고 철저하게 설명한다. 사실상, 설명하는 구현예들은 본원의 구현예들의 단지 일부일 뿐이며 전부가 아니다. 창의적인 노력 없이 본원의 구현예에 기초하여 당업자들이 얻게 되는 다른 모든 구현예들은 본원의 보호 범위 내에 있다.
종래기술에서는, 웹 페이지를 오픈하는 브라우저 애플리케이션, 또는 webView 컴포넌트를 이용하여 웹 페이지를 오픈하는 로컬 애플리케이션 A(예컨대, 앞의 브라우저 애플케이션 또는 티겟 구매 애플리케이션)는 대개, 호출된 로컬 애플리케이션 B와 동일한 애플리케이션이 아니며, 로컬 애플리케이션 B와 동일한 프로세스에 속하지 않는다. 종래기술은 웨이크업 프로세스에서 프로세스간 통신 방법(cross-process communication method)이 없고, 로컬 애플레이션 A는 로컬 애플리케이션 B의 호출 여부를 알 수 없기 때문에, 로컬 애플리케이션 A는 로컬 애플리케이션 B를 다운로드하기 위한 부트 페이지로 이동한다.
본원의 구현예는 애플리케이션을 시작하는 방법을 제공한다. 도 1은 본 구현예의 구현 절차를 보여준다. 도 1에 도시하는 바와 같이, 구현예의 절차는 다음의 단계들을 포함한다.
S110. 제1 로컬 애플리케이션이 HTML5 웹 페이지를 오픈하고, 제2 로컬 애플리케이션을 호출하며, webSocket을 시작하여 로컬 소켓으로의 접속을 시도한다.
HTML5 웹 페이지로의 링크가 탭핑 등의 조작에 의해 트리거되어 오픈되면, 해당 페이지가 브라우저 애플리케이션 또는 로컬 애플리케이션의 webView 컴포넌트로 로딩될 수 있다. 브라우저 애플리케이션 또는 로컬 애플리케이션의 webView 컴포넌트는 HTML5 웹 페이지의 어드레스를 URI(uniform resource identifier)로 어셈블링할 수 있다. URI은 스킴 URI(또는 URI 스킴) 또는 커스텀 스킴 URI로서 불려진다. URI는 URI(Uniform Resource Identifier)의 명명 구조이며, 리소스를 정의할 수 있다. 리소스는 광범위한 개념이며, 일반적으로 웹 리소스라고 할 수 있는데, 로컬 머신의 파일일 수도 있고 네트워크 상의 비디오, 등등일 수도 있다. 다음 폼이 URI이다.
http://write.blog.csdn.net/postedit/7313543
file:///c:/WINDOWS/clock.avi
Git://github.com/user/project-name.git
ftp://user1:1234@address
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은 스킴명인데, 예를 들어, 앞의 http, file, Git, 및 ed2k이 스킴명이고, 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는 Zhima가 APP을 검증함을 나타낸다. ALIPAY의 경우, 데이터는, 예컨대 ALIPAY://schemeApi/startApp?bundleId=2000118&version=1.5.1이다. 시스템은 zmVerify 스킴을 이용하여, zmVerify 스킴을 선언하는 APP를 찾아서 그 APP을 호출할 수 있다. schemeApi, startapp, bundleID 및 version은 선택적 파라미터 아이템이다. schemeApi는 qq.com 및 ALIPAY.com 등의 도메인명과 동등한 도메인이다. 제2 애플리케이션은 서비스 요건에 따라 startapp, bundleID, version 또는 더 많은 다른 유사한 파라미터 아이템을 프로세싱할 수 있고, 예컨대 웹 페이지를 오픈하거나 음악을 재생하거나 통지를 전송할 수 있다.
단문 메시지 애플리케이션 내의 링크가 트리거되어 오픈되면, 디폴트 브라우저 애플리케이션이 시작되어 링크를 오픈할 수 있다. 오프닝 프로세스에서, 단말기 디바이스의 브라우저 애플리케이션은 파싱을 통해 링크 내의 URI를 취득하여, URI에서 식별된 애플리케이션에 기초해 대응하는 링크 리소스에 액세스할 수 있다. 특히, 단말기 디바이스 브라우저는 웹 페이지 데이터에서 js 코드를 파싱함으로써 URI를 취득할 수 있다.
예를 들어, URI에서 식별된 애플리케이션이 ALIPAY이면, 해당 ALIPAY APP은 시스템 API를 사용하여 호출될 수 있으며, 앞의 링크에 기술된 리소스는 ALIPAY에서 액세스 가능하다. 마찬가지로, URI에서 식별된 애플리케이션이 TAOBAO이면, 해당 TAOBAO APP은 시스템 API를 사용하여 호출될 수 있으며, 앞의 링크에 기술된 리소스는 TAOBAO에서 오픈된다.
앞의 예에서는, 디폴트 브라우저 애플리케이션이 S110의 제1 로컬 애플리케이션이고, 호출된 ALIPAY APP 또는 TAOBAO APP가 제2 로컬 애플리케이션이다.
마찬가지로, 제1 로컬 애플리케이션은 webView 컴포넌트와 통합된 애플리케이션, 예컨대 특정 쇼핑 애플리케이션일 수 있다. 쇼핑 애플리케이션은 webView와 통합되며, webView와 통합된 애플리케이션을 이용하여 링크가 오픈될 수 있다. HTML5 웹 페이지 브라우징 기능을 구현하는 webView 컴포넌트가 통합되어 있기 때문에, 디폴트 브라우저 애플리케이션은 현재 프로세스에서 시작될 필요가 없다.
제1 로컬 애플리케이션과 제2 로컬 애플리케이션은 대개 상이한 포로세스에 속하기 때문에, 서로 직접 통신할 수 없다.
뿐만 아니라, HTML5 웹 페이지를 오픈한 후에, 제1 로컬 애플리케이션은 또한 webSocket을 시작하여 로컬 소켓으로의 접속을 시도할 수 있다. webSocket은 HTML5의 프로토콜이다. webSocket 프로토콜은 HTML5에서 정의되며, 서버 리소스와 대역폭을 더 많이 절약하고 실시간 통신을 구현할 수 있다. webSocket은 브라우저와 서버 사이에 전이중 통신(full-duplex communication)을 구현할 수 있다. webSocket을 이용함으로써, 브라우저와 서버는 1 핸드쉐이크를 행할 필요가 있고, 그래서 브라우저와 서버 간에 빠른 경로가 형성되어, 브라우저와 서버는 서로 직접 데이터를 전송할 수 있다.
URI를 사용하여 웹 페이지를 오픈할 때에, 제1 로컬 애플리케이션은 URI에 표시된 파라미터를 사용함으로써, 시작되는 로컬 소켓의 어드레스와 포트를 취득할 수 있다. 이와 같이, 제1 로컬 애플리케이션에 의해 시작되는 webSocket이 로컬 소켓으로의 접속을 시도할 수 있다.
S120. 제2 로컬 애플리케이션이 로컬 소켓을 시작한다.
본원의 구현예에서는, 제2 로컬 애플리케이션이 호출된 후에, 제2 로컬 애플리케이션은 로컬 소켓을 시작할 수 있다. 특히, URI를 사용하여 웹 페이지를 오픈할 때에, 제2 로컬 애플리케이션은 로컬 소켓을 시작할 것을 명령하는 URI에 포함된 파라미터를 사용하여 로컬 소켓을 시작할 수 있다. 파라미터는 예컨대 앞의 schemeApi, startapp, bundleID, 및 version을 포함할 수 있다. 이들 파라미터는 제2 로컬 애플리케이션이 호출된 후에 오픈되는 입구(entrance)와 같은 컨텐츠를 표시하는데 사용될 수 있다. 예를 들어, ALIPAY는 크레디트 결제 입구에서 시작된다.
시작된 로컬 소켓은 "접속 대기중" 상태일 수 있고, 서비스일 수 있다.
소켓은 운영 체제가 제공하는 통신 계층에서의 추상 API의 세트로서, IP 어드레스와 포트를 기술하는데 사용되며, 통신 링크의 핸들이다. 애플리케이션 프로그램이 네트워크에 요청을 보내거나, 소켓을 이용하여 네트워크 요청에 응답한다. 애플리케이션 프로그램은 대개 네트워크에 요청을 보내거나, "소켓"을 이용하여 네트워크 요청에 응답한다. 소켓은 동일한 호스트의 다른 프로세스 간의 통신에 사용될 수 있고, 양방향 통신이 확립될 수 있다.
애플리케이션 프로그램(즉, 프로세스)이 시스템에 의해 호출되고 특정 포트에 바인딩된 후에, 전송 계층에 의해 해당 포트로 전송되는 데이터는 대응하는 프로세스에 의해 수신되고 대응하는 프로세스에 의해 전송 계층으로 전송된 데이터는 해당 포트를 사용하여 출력된다.
뿐만 아니라, 제2 로컬 애플리케이션이 호출된 후, 해당 링크에 대응하는 HTML5 웹 페이지가 오픈될 수 있어, 사용자는 제2 로컬 애플리케이션에서 작업을 브라우징하거나 수행할 수 있다.
S130: 제1 로컬 애플리케이션이 webSocket을 이용하여 로컬 소켓에 접속하면, 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로의 이동을 정지한다.
S110에서, HTML5 웹 페이지를 오픈한 후에, 제1 로컬 애플리케이션은 webSocket을 시작하여 로컬 소켓으로의 접속을 시도할 수 있다. S120에서, 제2 로컬 애플리케이션이 로컬 소켓을 시작한다. 이와 같이, S130에서, 제1 로컬 애플리케이션은 webSocket을 이용하여 로컬 소켓에 접속할 수 있다.
webSocket 통신 원리에 기반하여, 핸드쉐이크 모드가 로컬 소켓과의 통신에 사용될 수 있다. 핸드쉐이크 성공의 확인에 따라, webSocket은 제1 로컬 애플리케이션이 로컬 소켓에 접속하는 것을 결정할 수 있다.
제1 로컬 애플리케이션이 webSocket을 이용하여 로컬 소켓에 접속하면, 제2 로컬 애플리케이션이 호출되었음이 결정되어, 제1 로컬 애플리케이션은 제2 로컬 애플리케이션을 다운로드하기 위한 특정 다운로드 부트 페이지로 이동할 필요가 없다. 뿐만 아니라, 제1 로컬 애플리케이션은 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로의 이동을 정지할 수 있다. 또한, 시작된 webSocket에 의해 로컬 소켓에 접속하는 것이 로컬 작업이고, 네트워크 전송이 필요하지 않거나 네트워크 응답이 필요하지 않기 때문에, 프로세싱 및 결정 시간이 크게 단축될 수 있다.
제2 로컬 애플리케이션은 로컬 소켓을 시작하는 데에 소정의 시간을 소비해야 한다. 그렇기 때문에, 제1 로컬 애플리케이션은 webSocket을 시작한 후에 로컬 소켓으로의 접속을 시도할 필요는 없지만, 제1 미리 결정된 기간 후에는 로컬 소켓으로의 접속을 시도할 수 있다. S110에서, HTML5 웹 페이지를 오픈되고 나서 제1 미리 결정된 기간 후에, 제1 로컬 애플리케이션은 webSocket을 시작하여 로컬 소켓으로의 접속을 시도할 수 있다. 제1 미리 결정된 기간 후에 제1 로컬 애플리케이션이 webSocket을 이용하여 로컬 소켓에 접속하면, 제1 애플리케이션은 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로의 이동을 정지한다. 미리 결정된 기간은 예컨대 800 ms 또는 1 s로 설정된다.
뿐만 아니라, 제1 로컬 애플리케이션이 webSocket을 이용하여, 로컬 소켓으로의 접속에 실패하면, 제1 로컬 애플리케이션은 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로 이동할 수 있다. 특히, 제1 로컬 애플리케이션이 로컬 소켓으로의 접속에 실패하면, 제1 로컬 애플리케이션은 대개 에러 프롬프트를 수신할 수 있다. 이와 같이, 제1 로컬 애플리케이션이 webSocket을 이용하여 로컬 소켓에 접속할 때에 에러 프롬프트를 수신하면, 제1 로컬 애플리케이션은 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로 이동할 수 있다. 제2 로컬 애플리케이션을 다운로드하기 위해 이동하게 되는 부트 페이지는 웹 페이지 로직에 설정될 수 있고, 종래의 기술에서 이미 구현되었으며, 이에 상세 내용은 여기에 또 설명하지 않는다.
제1 로컬 애플리케이션에 의해 시작되는 webSocket과 제2 로컬 애플리케이션에 의해 시작되는 로컬 소켓은 웹 페이지 링크 내의 지정된 포트 또는 지정된 포트 그룹 중의 하나일 수 있고, 이러한 포트는 웹 페이지 링크 내의 파라미터일 수 있다. URI를 어셈블링하는 프로세스에서, 이것 역시 구현될 수 있다. 이와 같이, 제2 로컬 애플리케이션에 의해 시작되는 로컬 소켓은 지정된 포트일 수 있다.
뿐만 아니라, 제1 로컬 애플리케이션에 의해 시작되는 webSocket 및 제2 로컬 애플리케이션에 의해 시작되는 로컬 소켓은 사전 동의된 포트일 수도 또는 사전 동의된 포트 그룹 중 하나일 수도 있다. 예를 들어, S120에서 제2 로컬 애플리케이션에 의해 시작되는 로컬 소켓이 사용하는 포트는 포트 그룹 중 하나인데, 포트 그룹은 8888, 8889, 및 8890을 포함한다. 때때로, 포트 8888은 다른 애플리케이션이 차지할 수도 있다. 이 때에, S120에서 제2 로컬 애플리케이션에 의해 시작된 로컬 소켓은 포트 8888이 사용되고 있음을 알 수 있고, 이에 로컬 소켓은 포트 8889를 사용할 수 있다. 이 경우에, 제1 로컬 애플리케이션에 의해 시작되는 webSocket 역시 포트 8888이므로, 로컬 소켓에 접속할 수 없다. 이에, 제1 로컬 애플리케이션에 의해 시작되는 webSocket이 제2 미리 결정된 기간, 예컨대 20 ms 내에 로컬 소켓으로의 접속에 실패하면, 제1 로컬 애플리케이션은 다시 로컬 소켓에 접속하기 위해 미리 결정된 포트 그룹 중의 다른 포트를 사용할 수 있다. 로컬 소켓에 다시 성공적으로 접속할 경우, 제1 로컬 애플리케이션은 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로의 이동을 정지할 수 있다. 제1 로컬 애플리케이션에 의해 시작된 webSocket이 미리 결정된 포트 그룹 중의 모든 포트를 사용한 후 제2 미리 결정된 기간 내에 로컬 소켓으로의 접속에 실패하면, 제1 로컬 애플리케이션은 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로 이동할 수 있다.
본원은 애플리케이션을 시작하는 시스템의 구현예도 제공한다.
애플리케이션을 시작하는 시스템은 제1 로컬 애플리케이션 및 제2 로컬 애플리케이션을 포함하고, 제1 로컬 애플리케이션은, HTML5 웹 페이지를 오픈하고, 제2 로컬 애플리케이션을 호출하며, webSocket을 시작하여 로컬 소켓으로의 접속을 시도하고, 제1 로컬 애플리케이션이 webSocket을 이용하여 로컬 소켓에 접속하면, 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로의 이동을 정지하도록 구성되며, 제2 로컬 애플리케이션은 로컬 소켓을 시작하도록 구성된다.
바람직하게는, 웹 페이지로의 링크가 트리거되어 오픈되면, 제1 로컬 애플리케이션은 해당하는 웹 페이지를 오픈하고, 제1 로컬 애플리케이션은 브라우저 애플리케이션 또는 webView 컴포넌트와 통합된 로컬 애플리케이션을 포함한다.
바람직하게는, 웹 페이지로의 링크가 트리거되어 오픈되면, 제1 로컬 애플리케이션은 웹 페이지의 어드레스를 URI로 어셈블링하고, 그 URI에 대응하는 제2 로컬 애플리케이션을 호출한다.
바람직하게는, 제1 로컬 애플리케이션은, HTML5 웹 페이지가 오픈되고 나서 제1 미리 결정된 기간 후에, 제1 로컬 애플리케이션에 의한 webSocket의 시작, 및 로컬 소켓으로의 접속 시도를 포함해서, webSocket을 시작하여 로컬 소켓으로의 접속을 시도한다.
바람직하게는, 제1 로컬 애플리케이션이 webSocket을 이용하여 로컬 소켓으로의 접속에 실패하면, 제1 로컬 애플리케이션은 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로 이동한다.
바람직하게는, 제1 로컬 애플리케이션이 webSocket을 이용하여 로컬 소켓에 접속할 때에 에러 프롬프트를 수신하면, 제1 로컬 애플리케이션은 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로 이동할 수 있다.
바람직하게는, 제2 로컬 애플리케이션에 의해 로컬 소켓을 시작하는데 사용되는 포트가 사용중(occupied)이면, 제2 로컬 애플리케이션은 미리 결정된 포트 그룹 중의 다른 포트를 사용한다.
이에, 제1 로컬 애플리케이션에 의해 시작된 webSocket이 제2 미리 결정된 기간 내에 로컬 소켓으로의 접속에 실패하면, 로컬 소켓에 다시 접속하기 위해 미리 결정된 포트 그룹 중의 다른 포트를 사용한다.
바람직하게는, 제1 로컬 애플리케이션에 의해 시작된 webSocket이 미리 결정된 포트 그룹 중의 모든 포트를 사용한 후 제2 미리 결정된 기간 내에 로컬 소켓으로의 접속에 실패하면, 제1 로컬 애플리케이션은 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로 이동한다.
1990년대의 기술 개선은 하드웨어 개선(예컨대, 다이오드, 트랜지스터 또는 스위치 등의 회로 구조의 개선)과 소프트웨어 개선(예컨대, 방법 프로시저의 개선) 사이에서 명백히 구별될 수 있다. 그러나, 기술이 발전함에 따라, 다수의 방법 프로시저의 개선이 하드웨어 회로 구조의 직접 개선으로서 간주될 수 있다. 거의 모든 설계자들은 개선된 방법 프로시저를 하드웨어 회로에 프로그래밍하여 대응하는 하드웨어 회로 구조를 얻는다. 따라서, 하드웨어 엔티티 모듈을 사용하여 방법 프로시저의 개선을 구현할 수 없다고 말할 수 없다. PLD(Programmable Logic Device)(예컨대, FPGA(Field Programmable Gate Array))가 그러한 집적 회로이고, 그 PLD의 논리적 기능은 디바이스 프로그래밍을 통해 사용자가 결정한다. 설계자는 주문형 집적 회로(ASIC) 칩을 설계하고 생산할 것을 칩 제조업자에 요청하지 않고도 디지털 시스템을 PLD에 "통합"하기 위한 프로그래밍을 수행한다. 뿐만 아니라, 현재, 통합 칩을 수동으로 제조하는 것이 아니라, 이러한 유형의 프로그래밍은 주로 "로직 컴파일러" 소프트웨어를 사용하여 구현된다. 프로그래밍은 프로그램을 개발하고 작성하는데 사용되는 소프트웨어 컴파일러와 유사하다. 오리지널 코드는 컴파일을 위해 특정 프로그래밍 언어로 작성되어야 한다. 이 언어를 하드웨어 디스크립션 언어(HDL, hardware description language)라고 한다. ABEL(Advanced Boolean Expression Language), AHDL(Altera Hardware Description Language), 컨플루언스(Confluence), CURL(Cornell University Programming Language), HDCal, JHDL(Java Hardware Description Language), Lava, Lola, MyHDL, PALASM 및 RHDL(Ruby Hardware Description Language) 등의 다수의 HDL이 있다. VHDL(very-high-speed integrated circuit hardware description language) 및 Verilog가 가장 일반적으로 사용된다. 또한, 당업자라면, 설명한 몇몇 하드웨어 디스크립션 언어를 이용하여 방법 프로시저가 논리적으로 프로그래밍되고 집적 회로에 프로그래밍되면, 논리적 방법 프로시저를 구현하는 하드웨어 회로가 쉽게 취득될 수 있음을 이해해야 한다.
임의의 적절한 방법을 이용하여 컨트롤러가 구현될 수 있다. 예를 들어, 컨트롤러는 마이크로프로세서 또는 프로세서, 또는 컴퓨터 판독 가능 매체, 로직 게이트, 스위치, 주문형 집적 회로(ASIC), 프로그래머블 로직 컨트롤러, 또는 마이크로프로세서 또는 프로세서에 의해 실행될 수 있는 컴퓨터 판독 가능한 프로그램 코드(소프트웨어 또는 펌웨어 등)를 저장하는 임베딩된 마이크로프로세서일 수 있다. 컨트롤러의 예는 ARC 625D, 아트멜(Atmel) AT91SAM, 마이크로칩(Microchip) PIC18F26K20 및 실리콘 랩스(Silicone Labs) C8051F320와 같은 마이크로컨트롤러를 포함하지만, 이들에 한정되지는 않는다. 메모리 컨트롤러는 메모리의 제어 로직의 일부로서도 구현될 수 있다. 당업자라면 컴퓨터 판독 가능한 프로그램 코드를 사용하여 컨트롤러를 구현하는 것뿐만 아니라, 컨트롤러로 하여금 동일한 기능을 로직 게이트, 스위치, 프로그래머블 로직 컨트롤러, 프로그래머블 로직 컨트롤러, 및 임베디드 마이크로컨트롤러의 형태로 구현하게 할 수 있도록 방법의 단계에서 로직 프로그래밍이 수행될 수 있다는 것도 안다. 이에, 컨트롤러는 하드웨어 구성요소로 간주될 수 있고, 컨트롤러 내의 다양한 기능을 구현하도록 구성되는 장치도 하드웨어 구성요소 내의 구조로서 간주될 수 있다. 또는, 다양한 기능을 구현하도록 구성되는 디비이스도 방법을 구현하기 위한 소프트웨어 모듈 및 하드웨어 구성요소 내의 구조 둘 다로서 간주될 수 있다.
앞의 실시형태에서 예시한 시스템, 장치, 모듈 또는 유닛은 컴퓨터 칩 또는 엔티티를 사용하여 구현될 수도, 또는 특정 기능을 갖는 제품을 사용하여 구체적으로 구현될 수도 있다.
설명의 편의상, 설명하는 장치는 기능들을 다양한 유닛들로 분할함으로써 설명된다. 사실상, 본원이 구현될 때, 각 유닛의 기능이 소프트웨어 및/또는 하드웨어의 하나 이상의 피스로 구현될 수 있다.
당업자라면 본 개시내용의 구현예가 방법, 시스템, 또는 컴퓨터 프로그램 제품으로서 제공될 수 있음을 이해해야 한다. 따라서, 본 개시내용은 하드웨어 전용 구현, 소프트웨어 전용 구현, 또는 소프트웨어와 하드웨어가 조합된 구현의 형태를 사용할 수 있다. 또한, 본 개시내용은 하나 이상의 컴퓨터 사용 가능한 저장 매체(자기 디스크 스토리지, CD-ROM, 광학 메모리 등을 포함하지만 이에 한정되지는 않음) 상에서 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 개시내용은 본 개시내용의 구현예에 따른 방법, 디바이스(시스템), 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 설명되었다. 흐름도 및/또는 블록도 내의 각각의 프로세스 및/또는 각각의 블록, 및 흐름도 및/또는 블록도 내의 프로세스 및/또는 블록의 조합을 구현하는 데에 컴퓨터 프로그램 명령어가 사용될 수 있음을 이해해야 한다. 이들 컴퓨터 프로그램 명령어는 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서, 또는 머신을 생성하기 위한 또 다른 프로그래머블 데이터 프로세싱 디바이스의 프로세서에 제공되어, 컴퓨터 또는 또 다른 프로그래머블 데이터 프로세싱 디바이스의 프로세서에 의해 실행되는 명령어가 흐름도 내의 하나 이상의 프로세스 및/또는 블록도 내의 하나 이상의 블록에서 특정 기능을 구현하는 장치를 생성한다.
이들 컴퓨터 프로그램 명령어는 컴퓨터 판독 가능한 메모리에 저장되어, 컴퓨터 또는 또 다른 프로그래머블 데이터 프로세싱 디바이스로 하여금, 그 컴퓨터 판독 가능 메모리에 저장된 명령어가 지시 장치(instruction apparatus)를 포함하는 아티팩트를 생성하게 하는, 특정 방식으로 동작하도록 지시할 수 있다. 지시 장치는 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정 기능을 구현한다.
이들 컴퓨터 프로그램 명령어는 컴퓨터 또는 다른 프로그래머블 데이터 프로세싱 디바이스 상에 로딩되어, 일련의 동작 및 단계가 컴퓨터 또는 다른 프로그래머블 디바이스 상에서 수행되는 것에 의해 컴퓨터 구현 프로세싱을 생성하게 할 수 있다. 이에, 컴퓨터 또는 다른 프로그래머블 디바이스 상에서 실행되는 명령어는 흐름도 내의 하나 이상의 프로세스 및/또는 블록도 내의 하나 이상의 블록에서 특정 기능을 구현하기 위한 단계를 제공한다.
통상의 구성에 있어서, 컴퓨팅 디바이스는 하나 이상의 프로세서(CPU), 입출력 인터페이스, 네트워크 인터페이스, 및 메모리를 포함한다.
메모리는 비영구적 스토리지, RAM(random access memory), 및/또는 ROM(read-only memory) 또는 플래시 메모리(플래시 RAM)) 등의 비휘발성 메모리를 포함할 수 있다. 메모리는 컴퓨터 판독 가능 매체의 일례이다.
컴퓨터 판독 가능 매체는 임의의 방법 또는 기술을 사용하여 정보 저장을 구현할 수 있는, 지속성, 비지속성, 가반성, 및 비가반성 매체를 포함한다. 정보는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 기타 데이터일 수 있다. 컴퓨터 저장 매체의 예는 병렬 랜덤 액세스 메모리(PRAM), 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 다른 유형의 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 전기적 소거 가능한 프로그래머블 리드 온리 메모리(EEPROM), 플래시 메모리 또는 다른 메모리 기술, CD-ROM(compact disk read-only memory), DVD(digital versatile disc) 또는 다른 광학 스토리지, 및 카세트를 포함하지만, 이들에 한정되지 않는다. 카세트 스토리지 또는 다른 자기 저장 디바이스 또는 기타 비전송 매체는 컴퓨팅 디바이스에 의해 액세스될 수 있는 정보를 저장하도록 구성될 수 있다. 본 명세서 내의 정의에 기초하여, 컴퓨터 판독 가능 매체는 변조된 데이터 신호 및 캐리어 등의 일시적 컴퓨터 판독 가능 매체(일시적 매체)를 포함하지 않는다.
또한, "포함(include, comprise)" 및 이것의 기타 변형형에 해당하는 표현은 비배타적인 포함(inclusion)을 망라하는 것이 의도되어, 일련의 요소를 포함하는 프로세스, 방법, 물품, 또는 디바이스는 이들 요소를 포함할 뿐만 아니라, 명시적으로 열거되지 않은 다른 요소도 포함하거나 그러한 프로세스, 방법, 물품 또는 디바이스의 고유한 요소를 더 포함하는 것을 알아야 한다. "...를 포함한다"가 붙은 요소는 더 많은 제약없이 그 요소를 포함하는 프로세스, 방법, 물품 또는 디바이스에서의 추가적인 동일한 요소들의 존재를 배제하지 않는다.
당업자라면 본원의 구현예가 방법, 시스템, 또는 컴퓨터 프로그램 제품으로서 제공될 수 있음을 이해해야 한다. 따라서, 본원은 하드웨어 전용 구현, 소프트웨어 전용 구현, 또는 소프트웨어와 하드웨어가 조합된 구현의 형태를 사용할 수 있다. 또한, 본원은 하나 이상의 컴퓨터 사용 가능한 저장 매체(자기 디스크 스토리지, CD-ROM, 광학 메모리 등을 포함하지만 이에 한정되지는 않음) 상에서 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본원은 컴퓨터에 의해 실행되는 컴퓨터 실행 가능 명령어, 예를 들어 프로그램 모듈의 일반적 콘텍스트에서 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 실행하거나 특정 추상 데이터 타입을 구현하는, 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본원은 분산형 컴퓨팅 환경에서 실시될 수도 있다. 분산형 컴퓨팅 환경에서는, 통신 네트워크를 통해 접속된 원격 프로세싱 디바이스들에 의해 태스크가 수행된다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 저장 디바이스를 포함하는 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치할 수 있다.
본원의 구현예는 점진적인 방식으로 설명되었다. 구현예들에서의 동일하거나 유사한 부분에 대해서는 구현예들을 참조하면 된다. 각 구현예는 다른 구현예와의 차이점에 중점을 둔다. 특히, 시스템 구현예는 방법 구현예와 유사하므로 간략하게 설명되었다. 관련 부분에 대해서는, 방법 구현예의 관련 설명을 참조하면 된다.
이상의 설명은 본원의 구현예일 뿐이며, 본원을 제한하고자 하는 것은 아니다. 당업자에게는 본원에 다양한 수정 및 변형이 있을 수 있다. 본원의 사상 및 원리 내에서 이루어지는 임의의 수정, 등가의 대체, 개선 등은 모두 본원의 청구범위의 범주에 속하는 것이다.

Claims (18)

  1. 애플리케이션을 시작하는 방법에 있어서,
    제1 로컬 애플리케이션에 의해, HTML5 웹 페이지를 오픈하고, 제2 로컬 애플리케이션을 호출(invoking)하며, webSocket을 시작하여 로컬 소켓으로의 접속을 시도하는 단계(S110)와,
    상기 제2 로컬 애플리케이션에 의해, 상기 로컬 소켓을 시작하는 단계(S120)와,
    상기 제1 로컬 애플리케이션이 상기 webSocket을 이용하여 상기 로컬 소켓에 접속하면, 상기 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로의 이동(jumping)을 정지하는 단계(S130)
    를 포함하고,
    상기 제2 로컬 애플리케이션에 의해 상기 로컬 소켓을 시작하는데 사용되는 포트가 사용중(occupied)이면, 미리 결정된 포트 그룹 중의 다른 포트를 사용하며,
    이에 상응하여, 상기 제1 로컬 애플리케이션에 의해 시작되는 webSocket이 제2 미리 결정된 기간 내에 상기 로컬 소켓으로의 접속에 실패하면, 상기 로컬 소켓에 다시 접속하기 위해 상기 미리 결정된 포트 그룹 중의 다른 포트를 사용하는 것인 애플리케이션 시작 방법.
  2. 제1항에 있어서, 상기 웹 페이지로의 링크가 트리거되어 오픈되면, 상기 제1 로컬 애플리케이션은 해당하는 웹 페이지를 오픈하고, 상기 제1 로컬 애플리케이션은 브라우저 애플리케이션 또는 webView 컴포넌트와 통합된 로컬 애플리케이션을 포함하는 것인 애플리케이션 시작 방법.
  3. 제1항에 있어서, 상기 웹 페이지로의 링크가 트리거되어 오픈되면, 상기 제1 로컬 애플리케이션은, 웹 페이지 어드레스에 포함된 파라미터들을 URI로 어셈블링하고, 상기 URI에 대응하는 제2 로컬 애플리케이션을 호출하는 것인 애플리케이션 시작 방법.
  4. 제3항에 있어서, 상기 파라미터들은 지정된 포트 번호를 포함하는 것인 애플리케이션 시작 방법.
  5. 제1항에 있어서, 상기 제1 로컬 애플리케이션에 의해, webSocket을 시작하여 로컬 소켓으로의 접속을 시도하는 단계는,
    상기 HTML5 웹 페이지가 오픈되고 나서 제1 미리 결정된 기간 후에, 상기 제1 로컬 애플리케이션에 의해, webSocket을 시작하고, 상기 로컬 소켓으로의 접속을 시도하는 단계를 포함하는 것인 애플리케이션 시작 방법.
  6. 제1항에 있어서,
    상기 제1 로컬 애플리케이션이 webSocket을 이용하여 상기 로컬 소켓에 접속하는데 실패하면, 상기 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로 이동하는 단계를 더 포함하는 애플리케이션 시작 방법.
  7. 제6항에 있어서,
    상기 제1 로컬 애플리케이션이 webSocket을 이용하여 상기 로컬 소켓에 접속할 때에 에러 프롬프트를 수신하면, 상기 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로 이동하는 단계를 더 포함하는 애플리케이션 시작 방법.
  8. 삭제
  9. 제1항에 있어서, 상기 제1 로컬 애플리케이션에 의해 시작된 webSocket이, 상기 미리 결정된 포트 그룹 중의 모든 포트를 사용한 후 상기 제2 미리 결정된 기간 내에 상기 로컬 소켓으로의 접속에 실패하면, 상기 제1 로컬 애플리케이션은 상기 제2 로컬 애플리케이션을 다운로드하기 위한 부트 페이지로 이동하는 것인 애플리케이션 시작 방법.
  10. 제1항 내지 제7항 및 제9항 중 어느 한 항에 있어서, 상기 제1 로컬 애플리케이션과 상기 제2 로컬 애플리케이션은 서로 직접 통신할 수 없는 것인 애플리케이션 시작 방법.
  11. 제1항 내지 제7항 및 제9항 중 어느 한 항의 방법을 수행하도록 구성된 복수의 모듈을 포함하는 애플리케이션 시작 시스템.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
KR1020187035815A 2016-05-11 2017-04-11 애플리케이션을 시작하는 방법 및 시스템 KR102229852B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610309803.4A CN107370775B (zh) 2016-05-11 2016-05-11 一种启动应用的方法和系统
CN201610309803.4 2016-05-11
PCT/CN2017/079991 WO2017193746A1 (zh) 2016-05-11 2017-04-11 一种启动应用的方法和系统

Publications (2)

Publication Number Publication Date
KR20190006530A KR20190006530A (ko) 2019-01-18
KR102229852B1 true KR102229852B1 (ko) 2021-03-23

Family

ID=60266438

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187035815A KR102229852B1 (ko) 2016-05-11 2017-04-11 애플리케이션을 시작하는 방법 및 시스템

Country Status (10)

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

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 深圳云之家网络有限公司 应用通信方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254362A1 (en) * 2011-04-04 2012-10-04 Avaya Inc. System and method to transport htpp over xmpp
US20140280694A1 (en) * 2013-03-13 2014-09-18 Qualcomm Incorporated System and method to enable web property access to a native application

Family Cites Families (39)

* 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
CA2809899A1 (en) * 2010-09-07 2012-03-15 Apptui Inc. Control of computing devices and user interfaces
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
US9143530B2 (en) * 2011-10-11 2015-09-22 Citrix Systems, Inc. Secure container for protecting enterprise data on a mobile device
CN102970346B (zh) * 2012-11-01 2016-04-20 北京奇虎科技有限公司 浏览器进行软件下载的方法和浏览器
CN103810033B (zh) * 2012-11-15 2018-01-30 腾讯科技(深圳)有限公司 一种检测用程序启动的方法和装置
CN103269396B (zh) * 2013-05-02 2019-02-05 百度在线网络技术(北京)有限公司 一种对移动终端进行管理的方法和系统
US20150019307A1 (en) * 2013-05-14 2015-01-15 Aquto Corporation Mobile advertising
US9300669B2 (en) * 2013-06-14 2016-03-29 Dell Products L.P. Runtime API framework for client-server communication
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
CA2960118A1 (en) * 2014-10-21 2016-04-28 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
US10848561B2 (en) * 2017-10-30 2020-11-24 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
CN112425146B (zh) * 2018-06-15 2023-04-14 舒尔获得控股公司 集成会议平台的系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254362A1 (en) * 2011-04-04 2012-10-04 Avaya Inc. System and method to transport htpp over xmpp
US20140280694A1 (en) * 2013-03-13 2014-09-18 Qualcomm Incorporated System and method to enable web property access to a native application

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102229852B1 (ko) 애플리케이션을 시작하는 방법 및 시스템
JP6932142B2 (ja) アプリケーション起動方法及びシステム
KR102179149B1 (ko) 페이지 컴포넌트 동적 레이아웃
US11785072B2 (en) Method, apparatus, and system for pushing application program, and device
US8601468B1 (en) Web-based applications using web extents
KR102194052B1 (ko) 서비스 실행 방법 및 디바이스
CN107092475B (zh) 一种交互控件的调用方法及装置
CN111124544A (zh) 界面显示方法、装置、电子设备及存储介质
WO2023151439A1 (zh) 账户登录处理
CN109857963A (zh) 本地资源访问方法、装置及电子设备
CN108509228B (zh) 加载页面的方法、终端设备及计算机可读存储介质
US10776133B2 (en) Preemptive loading of code dependencies for improved performance
CN109542401B (zh) 一种Web开发方法、装置、存储介质及处理器
CN113282363A (zh) 一种优化混合app的方法及装置
CN113934474A (zh) 一种业务处理方法、装置和电子设备
WO2015196541A1 (zh) 脚本处理方法及装置
CN114579216A (zh) 一种小程序能力使用方法、装置以及设备
CN115941757A (zh) 一种面向iros机器人的管理交互方法、设备及介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant