KR20190008267A - 애플리케이션 시작 방법 및 시스템 - Google Patents

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

Info

Publication number
KR20190008267A
KR20190008267A KR1020187035144A KR20187035144A KR20190008267A KR 20190008267 A KR20190008267 A KR 20190008267A KR 1020187035144 A KR1020187035144 A KR 1020187035144A KR 20187035144 A KR20187035144 A KR 20187035144A KR 20190008267 A KR20190008267 A KR 20190008267A
Authority
KR
South Korea
Prior art keywords
app
local
port number
local app
server
Prior art date
Application number
KR1020187035144A
Other languages
English (en)
Other versions
KR102297817B1 (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 KR20190008267A publication Critical patent/KR20190008267A/ko
Application granted granted Critical
Publication of KR102297817B1 publication Critical patent/KR102297817B1/ko

Links

Images

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

Abstract

본 발명의 구현예는 애플리케이션(APP)을 시작하는 방법 및 시스템을 개시한다. 방법의 구현예는 제1 로컬 APP에 의해 웹 페이지를 열고 제2 로컬 APP을 호출하는 단계와; 제2 로컬 APP에 의해 로컬 서버를 시작하는 단계와; 제1 로컬 APP에 의해 JS 참조 요청을 상기 로컬 서버에 발송하는 단계와; 상기 로컬 서버에 의해 반송된 응답을 수신하면 지시된 다운로드 페이지로의 점핑을 상기 제1 로컬 APP에 의해 중지하는 단계를 포함한다. 본 발명의 구현예에 따르면, 열린 페이지(및 더 나아가 상기 제1 로컬 APP)는 대응하는 APP(제2 로컬 APP)이 열린 페이지(및 더 나아가 상기 제1 로컬 APP)가 존재하는 단말 장치에 설치되어 있는지를 확인할 수 있다.

Description

애플리케이션 시작 방법 및 시스템
본 발명은 컴퓨터 소프트웨어 기술 분야에 관한 것으로, 특히 애플리케이션을 시작하는 방법 및 시스템에 관한 것이다.
모바일 장치의 플랫폼은 각종 사용자 지향 기능을 구현하기 위해 모바일 장치의 운영체제에 기반하여 개발된 애플리케이션(APP)을 제공할 수 있다. 예를 들면, 애플의 iOS 플랫폼은 iOS 시스템에 기반하여 개발된 모바일 장치 APP을 제공하고, 구글의 안드로이드 플랫폼은 안드로이드 시스템에 기반하여 개발된 모바일 장치 APP을 제공하며, 윈도즈 모바일 장치 플랫폼은 윈도즈 시스템에 기반하여 개발된 모바일 장치 APP을 제공한다.
그러한 모바일 장치 플랫폼에서의 APP은 다른 APP을 이용하여 시작될 수 있다. 예를 들면, 단문 메시지 서비스(SMS) APP에 의해 수신된 SMS 메시지는 균일 리소스 로케이터(uniform resource locator, URL) 주소를 포함한다. 사용자가 SMS 메시지의 URL 주소를 탭(tap)한 후에, 모바일 장치는 웹 페이지를 열 수 있다. 웹 페이지는 모바일 장치의 디폴트 브라우저를 이용하여 열릴 수 있다. 다른 예로서, 모바일 장치의 로컬 APP A(예를 들면, 티켓 구매 APP)는 로컬 APP A에 통합된 웹뷰(WebView) 컴포넌트를 이용하여 지불 거래 중에 지불 페이지를 열 수 있고, 또한 지불 페이지에서 로컬 APP B(예를 들면, 지불 APP)를 시작할 수 있다.
예를 들면, 모바일 장치의 SMS APP의 소정 SMS 메시지는 알리페이(ALIPAY)의 링크 주소를 포함할 수 있다. 사용자가 SMS 메시지의 링크 주소를 탭한 후에, 모바일 장치는 디폴트 브라우저를 이용하여 링크 주소에 대응하는 페이지를 열 수 있다. 그 페이지에서, 사용자가 알리페이 지갑(ALIPAY Wallet) APP에서 동작을 수행할 수 있도록 스킴 URI(Scheme URI)를 통하여 로컬 APP B(예를 들면, 알리페이 지갑 APP)를 불러내기 위한 시도를 할 수 있다. 스킴 URI는 시스템 수준 리소스 위치찾기(location) 방법이고, 안드로이드, iOS 및 윈도즈 모바일 플랫폼 시스템을 지원한다. 상기 예에서, 알리페이 지갑 APP을 호출한 후에, 대부분의 모바일 플랫폼 시스템의 브라우저 APP에 의해 열린 페이지는 닫히지 않고 짧은 시구간 후에 APP 다운로드 페이지로 점프한다. 그래서 모바일 장치에 알리페이 지갑 APP이 설치되어 있다 하더라도 브라우저가 점프한 페이지는 여전히 프롬프트를 디스플레이하여 사용자에게 알리페이 지갑 APP을 다운로드하도록 지시한다.
다른 예로서, 모바일 장치의 로컬 APP A는 타오바오(TAOBAO)에서 상품의 링크 주소를 열도록 동작할 수 있고, 로컬 APP A는 로컬 APP A의 웹뷰 컴포넌트를 이용하여 상기 링크 주소에 대응하는 페이지를 열 수 있다. 그 페이지에서, 사용자가 타오바오앱(TAOBAOAPP)에서 동작들을 수행할 수 있도록 스킴 URI를 통하여 로컬 APP B(예를 들면, 타오바오앱)를 호출하기 위한 시도를 또한 할 수 있다. 유사하게, 상기 예에서, 타오바오앱이 호출된 후, 대부분의 모바일 플랫폼 시스템에서 로컬 APP A의 웹뷰 컴포넌트에 의해 열린 페이지는 닫히지 않고 짧은 시구간 후에 APP 다운로드 페이지로 점프한다. 그래서 모바일 장치에 타오바오앱이 설치되어 있다 하더라도 웹뷰 컴포넌트가 점프한 페이지는 여전히 프롬프트를 디스플레이하여 사용자에게 타오바오앱을 다운로드하도록 지시한다.
종래의 기술에서, 웹 페이지가 열리고 대응하는 APP이 호출된 후에, 상기 열린 웹 페이지는 대응하는 APP이 모바일 장치에 설치되어 있는 것을 알 수 없다. 그러므로 모바일 장치는 대응하는 APP이 모바일 장치에 설치되어 있는 것과 관계없이 APP 다운로드 페이지로 향해진다. 통신 프로세스가 연장되고, 리소스가 낭비되며 사용자 경험이 영향을 받는다.
본 발명의 구현예의 목적은 존재하는 페이지가 있는 단말 장치에 대응 APP이 설치되어 있는지를 열린 페이지가 확인할 수 있도록 애플리케이션(APP)을 시작하는 방법 및 시스템을 제공하는 것이다.
전술한 기술적 문제점을 해결하기 위해, 본 발명의 구현예는 다음과 같이 구현된다:
APP을 시작하는 방법은 제1 로컬 APP이 웹 페이지를 열고 제2 로컬 APP을 호출하는 단계와; 제2 로컬 APP이 로컬 서버를 시작하는 단계와; 상기 제1 로컬 APP이 자바스크립트(JavaScript, JS) 참조 요청을 상기 로컬 서버에 발송하는 단계와; 상기 로컬 서버에 의해 반송된 응답을 수신하면 상기 제1 로컬 APP이 지시된 다운로드 페이지로의 점핑을 중지하는 단계를 포함한다.
APP을 시작하는 시스템은 웹 페이지를 열고 제2 로컬 APP을 호출하도록 구성되고, JS 참조 요청을 로컬 서버에 발송하도록 또한 구성되고, 상기 로컬 서버에 의해 반송된 응답을 수신한 때 지시된 다운로드 페이지로의 점핑을 중지하도록 또한 구성된 제1 로컬 APP과; 상기 로컬 서버를 시작하도록 구성된 제2 로컬 APP과; 상기 제1 로컬 APP에 의해 발송된 JS 참조 요청을 수신하고, JS 참조 요청을 수신한 때 상기 제1 로컬 APP에 상기 응답을 반송하도록 구성된 로컬 서버를 포함한다.
본 발명의 구현예로 제공된 기술적 해법으로부터, 제2 로컬 APP이 로컬 서버를 시작한 후에, 로컬 서버는 다른 APP 및 제2 로컬 APP이 다른 프로세스에 존재하는 경우에도 다른 APP에 의해 발송된 요청에 응답할 수 있다는 것을 알 수 있다. 그래서, 로컬 서버는 제1 로컬 APP에 의해 발송된 JS 참조 요청을 수신하면 응답을 반송할 수 있다. 만일 로컬 서버에 의해 반송된 응답이 수신되면, 상기 제1 로컬 APP은 호출된 제2 로컬 APP이 로컬 서버를 시작하였는지 결정할 수 있다. 다시 말해서, 제2 로컬 APP이 호출되었고, 제1 로컬 APP은 소정의 지시된 다운로드 페이지로 점프할 필요가 없다. 또한, 제1 로컬 APP은 지시된 다운로드 페이지로의 점프를 중지할 수 있다.
본 발명의 구현예에서 또는 종래 기술에서의 기술적 해법을 더 명확히 설명하기 위해, 이하에서는 구현예 또는 종래 기술을 설명하는데 필요한 첨부 도면을 간단히 설명한다. 명백히, 하기 설명에서의 첨부 도면은 단지 본 발명의 일부 구현예를 보인 것이고, 당업자라면 이러한 첨부 도면으로부터 창조적 노력 없이 다른 도면을 도출할 수 있을 것이다.
도 1은 본 발명에 따른 APP을 시작하는 방법 구현예를 보인 흐름도이다.
본 발명의 구현예는 애플리케이션(APP)을 시작하는 방법 및 시스템을 제공한다.
당업자가 본 발명의 기술적 해법을 더 잘 이해할 수 있도록 하기 위해, 이하에서는 본 발명의 구현에 있어서 첨부 도면을 참조하면서 본 발명의 구현예의 기술적 해법을 명확하고 완전하게 설명한다. 명백히, 여기에서 설명하는 구현예는 본 발명의 모든 구현예라기보다 단지 일부 구현예이다. 창조적 노력 없이 본 발명의 구현예에 기반하여 당업자에 의해 획득되는 다른 모든 구현예도 본 발명의 보호 범위 내에 포함될 것이다.
전술한 종래의 기술에서, 브라우저에 의해 열리는 웹 페이지 또는 로컬 APP A(예를 들면, 전술한 브라우저 APP 또는 티켓 구매 APP)의 웹뷰 컴포넌트를 이용하여 열리는 웹 페이지는 일반적으로 호출되는 로컬 APP B와 다르다. 더욱이, 브라우저 또는 로컬 APP A 및 로컬 APP B는 다른 프로세스에서 존재한다. 종래 기술에서는 호출 프로세스를 위한 프로세스 간 통신 방법이 없다. 그러므로 로컬 APP A는 로컬 APP B가 호출되었는지를 알 수 없고, 로컬 APP A는 APP B의 지시된 다운로드 페이지로 여전히 점프한다.
본 발명의 구현예는 APP을 시작하는 방법을 제공한다. 도 1은 구현예를 구현하는 흐름을 보인 것이다. 도 1에 도시된 것처럼, 이 방법은 하기 단계를 포함한다:
S110. 제1 로컬 APP이 웹 페이지를 열고 제2 로컬 APP을 호출한다.
웹 페이지의 링크 주소가 트리거되고 태핑과 같은 동작에 의해 열릴 때, 대응하는 웹 페이지가 브라우저 APP에 또는 로컬 APP의 웹뷰 컴포넌트의 프로세스에 로드될 수 있다. 브라우저 APP, 또는 로컬 APP의 웹뷰 컴포넌트는 웹 페이지의 주소에 포함된 파라미터들을 균일 리소스 식별자(uniform resource identifier, URI)에 결합할 수 있다. URI는 스킴 URI(또는 URI 스킴) 또는 커스텀 스킴 URI라고도 부른다. URI는 균일 리소스 식별자의 네이밍 구조이고, 리소스를 설명할 수 있다. 리소스는 넓은 개념이고, 소위 웹 리소스, 로컬 디바이스에서의 파일, 또는 네트워크에서의 비디오 등일 수 있다. 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)은 스킴명을 표시하고, 앞에서 설명한 hppt, file, Git 및 ed2k는 모두 스킴명이며; 호스트(host)는 호스트 주소를 표시하고; 패쓰(path)는 경로를 표시하며; queryKey=queryValue는 쿼리 키 값을 표시하고; 포트(port)는 포트(옵션)를 표시한다.
예를 들면, 단문 메시지 서비스(SMS) APP에 SMS 메시지가 있고, SMS 메시지의 내용은 하기 형태의 링크 주소를 포함한다:
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 인코딩 후에 획득된 링크 및 URI 내의 파라미터이다(zmVerify://schemeApi/startApp?bundleId=2000118&version=1.5.1은 URL 디코딩 후에 획득된다). zmVerify는 ZMCertification APP을 표시한다. 알리페이 지갑 APP의 경우에, 일 예는 다음과 같다: alipay://schemeApi/startApp?bundleId=2000118&version=1.5.1. 시스템은 zmVerify의 스킴을 이용하여 스테이트먼트를 만드는 APP을 찾고 그 APP을 호출할 수 있다. schemeApi, startapp, bundleID, version 등은 모두 선택적 파라미터이다. schemeApi는 도메인 명, 예를 들면 qq.com 또는 alipay.com의 도메인과 동등하다. startapp, bundleID, version 또는 더 많은 다른 유사한 파라미터들의 경우에, 제2 APP은 서비스 필요조건, 예를 들면 소정의 웹 페이지 열기, 한 곡의 음악 연주하기 또는 통지 발송하기에 기반하여 이 파라미터들을 처리할 수 있다.
SMS APP의 링크 주소가 트리거되고 열린 후에, 디폴트 브라우저 APP이 상기 링크 주소를 열기 위해 활성화될 수 있다. 열기 프로세스에서, 단말 장치의 브라우저 APP은 링크 주소 내의 URI를 분석하고, 상기 URI에 의해 식별된 APP에 기반하여 대응하는 링크 리소스에 접근할 수 있다. 단말 장치의 브라우저는 웹 페이지 데이터의 JS 코드를 분석하여 URI를 결합 및 획득할 수 있다.
예를 들어서 만일 URI에 의해 식별된 APP이 알리페이 APP이면, 시스템 APP 프로그래밍 인터페이스(application programming interface, API)는 대응하는 알리페이 APP을 호출하기 위해 사용될 수 있고, 상기 링크 주소에 의해 설명된 리소스는 알리페이 APP에서 접근될 수 있다. 유사하게, 만일 URI에 의해 식별된 APP이 타오바오 APP이면, 시스템 API는 대응하는 타오바오 APP을 호출하기 위해 사용될 수 있고, 상기 링크 주소에 의해 설명된 리소스는 타오바오 APP에서 열릴 수 있다.
전술한 예에서, 디폴트 브라우저 APP은 S110에서 제1 로컬 APP이고, 호출되는 알리페이 APP 또는 타오바오 APP은 제2 로컬 APP이다.
유사하게, 제1 로컬 APP은 웹뷰 컴포넌트, 예를 들면 소정의 쇼핑 APP을 통합한 APP일 수 있다. 쇼핑 APP은 웹뷰를 통합하고 통합된 웹뷰 APP을 이용하여 소정 링크를 열 수 있다. 웹 페이지 브라우징 기능을 구현할 수 있는 웹뷰 컴포넌트가 통합되기 때문에, 디폴트 브라우저 APP은 프로세스 중에 반드시 활성화될 필요가 없다.
전술한 제1 로컬 APP과 제2 로컬 APP은 다른 프로세스에 존재하고, 따라서 서로 직접 통신할 수 없다.
S120. 제2 로컬 APP이 로컬 서버를 시작한다.
본 발명의 이 구현예에서, 호출된 후에, 제2 로컬 APP은 로컬 서버를 시작할 수 있다. 로컬 서버는 HTTP(Hypertext Transfer Prococol) 서버일 수 있고, HTTP 요청(예를 들면, HTTP GET 요청)을 수신하고 그 요청에 응답할 수 있다. 소프트웨어 프로그램은 서버를 설정 및 시작하기 위해 사용될 수 있다. 그러한 내용은 종래 기술에서 널리 적용되어 왔고, 그 세부는 간편성을 위해 생략한다. 예를 들면, 로컬 서버의 주소는 127.0.0.1:prot일 수 있다. 127.0.0.1은 로컬 서버에 지시되는 루프백 주소라고도 부르고, 일반적으로 테스트를 위해 사용된다. APP 또는 프로그램이 루프백 주소를 이용하여 데이터를 발송하면, 프로토콜 소프트웨어는 네트워크를 통해 전송되지 않는 대응하는 정보를 즉시 반송한다.
또한, 호출된 후에, 제2 로컬 APP은 제2 로컬 APP이 사용자에게 브라우징 또는 다른 동작을 제공하도록 전술한 링크 주소에 대응하는 리소스에 접근할 수 있다.
S130. 제1 로컬 APP이 JS 참조 요청을 로컬 서버에 발송한다.
제1 로컬 APP은 JS 참조 요청을 시작된 로컬 서버에 발송할 수 있다.
본 발명의 이 구현예에서 발송된 JS 참조 요청은 JSONP(JSON with Padding) 기술을 이용한다. JSONP는 정보 형식이고 웹 페이지가 다른 네트워크 도메인으로부터 정보를 획득할 수 있게 하는 JSON "사용 모드"이다. 또한, JSONP는 교차 원천 리소스 공유(cross-origin resource sharing)를 달성할 수 있다. 동일한 원천 정책에 기인하여, 일반적으로, server1.example.com의 웹 페이지는 server1.example.com 밖의 서버와 통신할 수 없다. 그러나 하이퍼텍스트 마크업 언어(Hypertext Markup Language, HTML) 내의 <script> 요소는 예외이다. 개방 정책, 즉 <script> 요소에 의해, 웹 페이지는 다른 원천에 의해 동적으로 발생된 데이터 정보를 획득할 수 있다. 그러한 사용 모드는 JSONP이다.
본 발명의 이 구현예에서, 제1 로컬 APP에 의해 발송된 JS 참조 요청의 일 예는 하기와 같다:
<script>http://127.0.0.1:8888/a.js</script>
<script><script>는 JS 참조 요청을 표시하는 동적으로 추가된 태그이다. 127.0.0.1은 로컬 디바이스의 주소, 즉 시작된 로컬 서버의 주소이다. 8888은 포트 번호이고, 일반적으로 디폴트 값이다. 사용되는 포트 번호는 대안적으로 제2 로컬 APP에 의해 시작된 로컬 서버와 제1 로컬 APP에 의해 사전 협의된 다른 포트 번호일 수 있다.
제1 로컬 APP은 웹 페이지에 <script> 태그를 동적으로 추가함으로써 발생되고 로컬 서버의 주소를 포함하는 JS 참조 요청을 로컬 서버에 발송할 수 있다.
S140: 제1 로컬 APP이 로컬 서버에 의해 반송된 응답을 수신하면 지시된 다운로드 페이지로의 점핑을 중지한다.
제2 로컬 APP이 로컬 서버를 시작한 후, 로컬 서버는 다른 APP과 제2 로컬 APP이 다른 프로세스에 존재하는 경우에도 다른 APP에 의해 발송된 요청에 응답할 수 있다.
그래서, 로컬 서버는 제1 로컬 APP에 의해 발송된 JS 참조 요청을 수신하면 응답을 반송할 수 있다. 상기 응답은 임의 유형의 응답, 또는 서비스에 기반하여 사전 협의된 응답일 수 있다. 후자의 경우에, 만일 제1 로컬 APP이 로컬 서버에 의해 반송된 응답을 수신하고 그 응답이 사전 협의된 응답을 만족시키면, 상기 제1 로컬 APP은 호출된 제2 로컬 APP이 로컬 서버를 시작하였는지 결정할 수 있다. 다시 말해서, 제2 로컬 APP이 호출되었고, 제1 로컬 APP은 소정의 지시된 다운로드 페이지로 점프할 필요가 없다. 또한, 제1 로컬 APP은 지시된 다운로드 페이지로의 점프를 중지할 수 있다.
제1 로컬 APP은 로컬 서버에 의해 반송된 응답을 미리 정해진 응답 시구간 내에 수신한다. 다시 말해서, 제1 로컬 APP은, 로컬 서버에 의해 반송된 응답을 미리 정해진 응답 시구간 내에 수신한 경우, 지시된 다운로드 페이지로의 점프를 중지한다.
또한, 제1 로컬 APP은 제1 로컬 APP이 로컬 서버에 의해 반송된 응답을 미리 정해진 응답 시구간 내에 수신하지 않으면 지시된 다운로드 페이지로 점프할 수 있다. 점프할 지시된 다운로드 페이지는 웹 페이지 로직에서 특정될 수 있다. 또한, 그러한 설정은 종래의 기술에서도 구현되었기 때문에 그 세부는 간편성을 위해 생략한다.
포트는 일군의 사전 협의된 포트 번호들 중의 하나일 수 있다. 예를 들면, S120에서 제2 로컬 APP에 의해 시작된 로컬 서버에서의 포트는 일군의 포트들 중의 하나이다. 포트들의 그룹은 8888, 8889 및 8890을 포함한다. S130에서 제1 로컬 APP에 의해 발송된 JS 참조 요청 내의 포트도 역시 일군의 포트들 중의 하나일 수 있다. 초기에 디폴트 포트는 8888일 수 있다. 그래서 S120에서 제2 로컬 APP에 의해 시작된 로컬 서버의 포트는 포트 8888이고, S130에서 제1 로컬 APP에 의해 발송된 JS 참조 요청 내의 포트도 또한 포트 8888이다. 그러므로 로컬 서버는 JS 참조 요청을 수신할 수 있다. 포트 8888은 가끔 다른 APP에 의해 점유될 수 있다. 이 경우에, S120에서 로컬 서버를 시작할 때, 제2 로컬 APP은 포트 8888이 점유되었고 포트 8889로 전환한다는 것을 알 수 있다. 그 결과, 제1 로컬 APP이 S130에서 포트 8888을 이용하여 JS 참조 요청을 발송할 때, 로컬 서버는 JS 참조 요청을 수신할 수 없다. 미리 정해진 지속기간, 예를 들면 20ms 내에 만일 제1 로컬 APP이 로컬 서버에 의해 반송된 응답을 수신하지 않으면, 제1 로컬 APP은 미리 정해진 포트 그룹 내의 다른 포트로 전환하여 JS 참조 요청을 다시 발송할 수 있다. JS 참조 요청을 다시 발송한 후에, 제1 로컬 APP은 로컬 서버에 의해 반송된 응답을 미리 정해진 지속기간 내에 수신한 경우 지시된 다운로드 페이지로의 점프를 중지할 수 있다. 제1 로컬 APP은 만일 제1 로컬 APP이 미리 정해진 포트 그룹 내의 포트들을 이용하여 미리 정해진 응답 시구간 내에 로컬 서버에 의해 반송된 응답을 수신하지 않으면 지시된 다운로드 페이지로 점프할 수 있다.
전술한 미리 정해진 지속기간은 상기 미리 정해진 응답 시구간보다 작을 수 있다. 예를 들면, 상기 미리 정해진 지속기간은 20ms이고 상기 미리 정해진 응답 시구간은 100ms이다. 그래서, 시작된 로컬 서버에서의 소정 포트가 점유되었다 하더라도, 다른 하나의 포트를 사용할 수 있다. 예를 들면, 사전 협의된 포트 번호들의 그룹 내의 제1 포트 번호가 점유되었을 때, 사전 협의된 포트 번호들의 그룹 내의 제2 포트 번호가 설정될 수 있다. 이에 대응하여, 제1 로컬 APP은 상기 제1 포트 번호를 이용하여 JS 참조 요청을 발송하고, 로컬 서버에 의해 반송된 응답을 제1의 미리 정해진 지속기간 내에 제1 로컬 APP이 수신하지 않으면, 사전 협의된 포트 번호의 그룹 내의 제2 포트 번호를 이용하여 JS 참조 요청을 발송할 수 있다. 유사하게, 사전 협의된 포트 번호의 그룹 내의 제3 및 다른 포트 번호를 시작된 서버와 제1 로컬 APP 사이에서 또한 사용할 수 있고, 그 세부는 간편성을 위해 생략한다. 상기 미리 정해진 지속기간은 제1 로컬 APP이 상기 미리 정해진 포트 번호들 중 가능한 한 많은 포트 번호로서 시도할 수 있도록 상기 미리 정해진 응답 시구간보다 작을 수 있다. 그래서 임의의 포트 번호를 이용하여 JS 참조 요청을 발송한 후에, 제1 로컬 APP은 만일 로컬 서버에 의해 반송된 응답을 획득하면 제2 로컬 APP이 시작되었다고 확인할 수 있다. 결국, 제1 로컬 APP은 지시된 다운로드 페이지로의 점프를 중지할 수 있다.
본 발명은 APP을 시작하는 시스템 구현예를 또한 제공하며, 이 시스템은 웹 페이지를 열고 제2 로컬 APP을 호출하도록 구성되며 JS 참조 요청을 로컬 서버에 발송하도록 또한 구성되고 상기 로컬 서버에 의해 반송된 응답을 수신한 때 지시된 다운로드 페이지로의 점핑을 중지하도록 또한 구성된 제1 로컬 APP과; 상기 로컬 서버를 시작하도록 구성된 제2 로컬 APP과; 상기 제1 로컬 APP에 의해 발송된 JS 참조 요청을 수신하고 JS 참조 요청을 수신한 때 상기 제1 로컬 APP에 상기 응답을 반송하도록 구성된 로컬 서버를 포함한다.
바람직하게, 웹 페이지의 링크 주소가 트리거되고 열린 때 제1 로컬 APP은 대응하는 웹 페이지를 열고, 이때 상기 제1 로컬 APP은 웹뷰 컴포넌트를 통합한 브라우저 APP 또는 로컬 APP을 포함한다.
바람직하게, 웹 페이지의 링크 주소가 트리거되고 열린 때, 제1 로컬 APP은 웹 페이지의 주소에 포함된 파라미터들을 URI에 결합하고 그 URI에 대응하는 제2 로컬 APP을 호출하여 연다.
바람직하게, 제1 로컬 APP은 JS 참조 요청을 로컬 서버에 발송한다. 이것은 제1 로컬 APP이 <script> 태그를 로컬 서버의 주소에 동적으로 추가함으로써 트리거되고 로컬 서버의 주소를 포함하는 JS 참조 요청을 로컬 서버에 발송하는 것을 포함한다.
바람직하게, 제1 로컬 APP에 의해 발송된 JS 참조 요청은 포트 번호를 포함하고, 포트 번호는 디폴트 값 또는 제2 로컬 APP에 의해 시작된 로컬 서버와 상기 제1 로컬 APP에 의해 사전 협의된 포트 번호이다.
바람직하게, 제2 로컬 APP은 로컬 서버를 시작하는 프로세스에서 사전 협의된 포트 번호들의 그룹 내의 제1 포트 번호로 포트 번호를 설정하고; 제1 로컬 APP에 의해 발송된 JS 참조 요청은 사전 협의된 포트 번호들의 그룹 내의 제1 포트 번호를 포함한다.
바람직하게, 제2 로컬 APP은 로컬 서버를 시작하고, 만일 설정된 제1 포트 번호가 점유되었으면 사전 협의된 포트 번호들의 그룹 내의 제2 포트 번호로 포트 번호를 설정하며; 제1 로컬 APP은 상기 제1 포트 번호를 이용하여 JS 참조 요청을 발송하고, 만일 로컬 서버에 의해 반송된 응답을 미리 정해진 지속기간 내에 상기 제1 로컬 APP이 수신하지 않으면 사전 협의된 포트 번호들의 그룹 내의 제2 포트 번호를 이용하여 JS 참조 요청를 발송한다.
바람직하게, 제1 로컬 APP은 로컬 서버에 의해 반송된 응답을 수신하면 지시된 다운로드 페이지로의 점프를 중지하고, 이것은 로컬 서버에 의해 반송된 응답을 미리 정해진 응답 시구간 내에 수신하면 제1 로컬 APP이 지시된 다운로드 페이지로의 점프를 중지하는 것을 포함한다.
바람직하게 제1 로컬 APP은 만일 제1 로컬 APP이 로컬 서버에 의해 반송된 응답을 미리 정해진 응답 시구간 내에 수신하지 않으면 지시된 다운로드 페이지로 점프한다.
1990년대에는 기술적 개선이 하드웨어 개선(예를 들면, 다이오드, 트랜지스터 또는 스위치에 대한 개선)인지 또는 소프트웨어 개선(방법 절차에 대한 개선)인지가 명확히 구별될 수 있었다. 그러나 기술이 진보함에 따라, 많은 현재의 방법 절차에서의 개선은 하드웨어 회로 구조에 대한 직접 개선으로 생각할 수 있다. 설계자는 통상적으로 개선된 방법 절차를 하드웨어 회로 구조로 프로그램하여 대응하는 하드웨어 회로 구조를 획득한다. 그러므로 방법 절차는 하드웨어 엔티티 모듈을 이용하여 개선될 수 있다. 예를 들면, 프로그래머블 논리 소자(PLD)(예를 들면, 필드 프로그래머블 게이트 어레이(FPGA))가 그러한 집적 회로이고, PLD의 논리적 기능은 소자 프로그래밍을 통하여 사용자에 의해 결정된다. 설계자는 칩 제조업자가 특수 용도 집적 회로 칩을 설계하여 생산할 것을 요구하지 않고 디지털 시스템을 PLD에 "집적"하도록 프로그래밍을 수행한다. 또한, 현재는 집적 회로 칩을 수작업으로 제조하는 대신에, 그러한 프로그래밍이 주로 "로직 컴파일러" 소프트웨어를 이용하여 구현된다. 로직 컴파일러 소프트웨어는 프로그램을 개발하고 작성하는데 사용하는 소프트웨어 컴파일러와 유사하다. 최초 코드는 편집(compilation)을 위해 특정 프로그래밍 언어로 작성되어야 한다. 상기 언어는 하드웨어 기술 언어(hardware description language, HDL)라고 부른다. 고급 부울 표현식 언어(Advanced Boolean Expression Language, ABEL), 알테라 하드웨어 기술 언어(AHDL), 콘플루언스, 코넬 유니버시티 프로그래밍 언어(CUPL), HDCal, 자바 하드웨어 기술 언어(JHDL), 라바, 로라, MyHDL, PALASM, 및 루비 하드웨어 기술 언어(RHDL)와 같은 많은 HDL이 있다. 초고속 집적 회로 하드웨어 기술 언어(VHDL) 및 Verilog2가 가장 일반적으로 사용된다. 당업자라면 방법 절차가 몇 가지 설명된 하드웨어 기술 언어를 이용하여 논리적으로 프로그램되고 집적 회로에 프로그램될 때 논리적 방법 절차를 구현하는 하드웨어 회로가 쉽게 획득될 수 있다는 것을 또한 이해할 것이다.
컨트롤러는 임의의 적당한 방법을 이용하여 구현될 수 있다. 예를 들면, 컨트롤러는 마이크로프로세서 또는 프로세서, 또는 마이크로프로세서 또는 프로세서, 논리 게이트, 스위치, 특수 용도 집적회로(ASIC), 프로그래머블 로직 컨트롤러 또는 빌트인 마이크로프로세서에 의해 실행될 수 있는 컴퓨터 판독가능 프로그램 코드(예를 들면, 소프트웨어 또는 펌웨어)를 저장하는 컴퓨터 판독가능 매체일 수 있다. 컨트롤러의 예는, 비제한적으로, ARC 625D, 아트멜 AT91SAM, 마이크로칩 PIC18F26K20 및 실리콘 랩스 C8051F320과 같은 마이크로프로세서를 포함한다. 메모리 컨트롤러가 또한 메모리의 제어 로직의 일부로서 구현될 수 있다. 당업자라면, 컴퓨터 판독가능 프로그램 코드를 이용하여 컨트롤러를 구현하는 것 외에, 컨트롤러가 논리 게이트, 스위치, 특수 용도 집적회로, 프로그래머블 로직 컨트롤러 및 빌트인 마이크로컨트롤러의 형태로 동일 기능을 구현할 수 있도록 로직 프로그래밍이 방법 단계에서 수행될 수 있다는 것을 또한 알 것이다. 그러므로 이러한 컨트롤러는 하드웨어 컴포넌트로서 생각할 수 있고, 컨트롤러에서 각종 기능을 구현하도록 구성된 장치도 또한 하드웨어 컴포넌트 내 구조로서 생각할 수 있다. 또는, 각종 기능을 구현하도록 구성된 디바이스가 방법을 구현하는 소프트웨어 모듈 및 하드웨어 컴포넌트 내 구조 둘 다로서 고려될 수 있다.
앞의 구현예에서 설명한 시스템, 디바이스, 모듈 또는 유닛이 컴퓨터 칩 또는 엔티티를 이용하여 구현될 수 있고, 또는 소정 기능을 가진 제품을 이용하여 구현될 수 있다.
설명을 쉽게 하기 위해, 상기 장치는 기능들을 각종 유닛으로 나눔으로써 설명된다. 확실히, 본 발명이 구현될 때, 각 유닛의 기능은 하나 이상의 소프트웨어 및/또는 하드웨어로 구현될 수 있다.
당업자라면 본 발명의 구현이 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다는 것을 이해할 것이다. 그러므로 본 발명은 하드웨어만의 구현, 소프트웨어만의 구현 또는 소프트웨어와 하드웨어의 조합에 의한 구현의 형태를 이용할 수 있다. 더욱이, 본 발명은 컴퓨터 사용가능 프로그램 코드를 포함한 하나 이상의 컴퓨터 사용가능 기억 매체(비제한적으로 디스크 메모리, CD-ROM, 광 메모리 등을 포함함)에서 구현되는 컴포터 프로그램 제품의 형태를 이용할 수 있다.
본 발명은 본 발명의 구현예에 따라 방법, 디바이스(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하면서 설명된다. 컴퓨터 프로그램 명령어는 흐름도 및/또는 블록도의 각각의 프로세스 및/또는 각각의 블록, 및 흐름도 및/또는 블록도의 프로세스 및/또는 블록의 조합을 구현하기 위해 사용될 수 있다는 점을 이해하여야 한다. 이러한 컴퓨터 프로그램 명령어는 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서, 또는 기계를 발생시키기 위한 다른 프로그래머블 데이터 처리 장치의 프로세서용으로 제공될 수 있고, 그래서 컴퓨터 또는 다른 프로그래머블 데이터 처리 장치의 프로세서에 의해 실행되는 명령어는 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록으로 특정 기능을 구현하는 장치를 발생시킨다.
이러한 컴퓨터 프로그램 명령어는 컴퓨터 또는 다른 프로그래머블 데이터 처리 장치가 특정 방법으로 작업하도록 지시할 수 있는 컴퓨터 판독가능 메모리에 저장될 수 있고, 그래서 컴퓨터 판독가능 메모리에 저장된 명령어는 명령 장치를 포함하는 아티팩트를 발생시킨다. 상기 명령 장치는 흐름도의 하나 이상의 흐름 및/또는 블록도의 하나 이상의 블록으로 특정 기능을 구현한다.
이러한 컴퓨터 프로그램 명령어는 컴퓨터 또는 다른 프로그래머블 데이터 처리 장치에 로드될 수 있고, 그래서 일련의 동작 및 단계들이 컴퓨터 또는 다른 프로그래머블 장치에서 수행되며, 이로써 컴퓨터 구현 프로세싱을 발생시킨다. 그러므로 컴퓨터 또는 다른 프로그래머블 장치에서 실행되는 명령어는 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록으로 특정 기능을 구현하는 단계들을 제공한다.
전형적인 구성에서, 컴퓨팅 장치는 하나 이상의 프로세서(CPU), 입력/출력 인터페이스, 네트워크 인터페이스 및 메모리를 포함한다.
메모리는 비일시적 메모리, 랜덤 액세스 메모리(RAM), 비휘발성 메모리, 및/또는 다른 형태의 컴퓨터 판독가능 매체, 예를 들면 읽기 전용 메모리(ROM) 또는 플래시 메모리(플래시 RAM)를 포함할 수 있다. 메모리는 컴퓨터 판독가능 매체의 일 예이다.
컴퓨터 판독가능 매체는 임의의 방법 또는 기술을 이용하여 정보 저장을 구현할 수 있는 영속적, 비영속적, 이동형 및 비이동형 매체를 포함한다. 정보는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터일 수 있다. 컴퓨터 기억 매체의 예로는, 비제한적으로, 위상 변화 랜덤 액세스 메모리(PRAM), 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 다른 유형의 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 전기적으로 소거 가능한 프로그래머블 읽기 전용 메모리(EEPROM), 플래시 메모리 또는 다른 메모리 기술, 컴팩트 디스크 읽기 전용 메모리(CD-ROM), 디지털 다기능 디스크(DVD) 또는 다른 광 스토리지, 카세트 자기 테이프, 테이프 및 디스크 스토리지, 또는 컴퓨팅 장치가 접근할 수 있는 정보를 저장하도록 구성된 다른 자기 스토리지 장치 또는 임의의 다른 비전송 매체 등이 있다. 본 명세서에서의 정의에 기초하여, 컴퓨터 판독가능 매체는 일시적 컴퓨터 판독가능 매체(일시적 매체), 예를 들면 피변조 데이터 신호 및 반송파를 포함하지 않는다.
용어 "포함하는", "내포하는" 및 이들의 임의의 다른 변체는 비배타적 내포를 포괄하는 것으로 의도되고, 그래서 일련의 요소를 포함하는 프로세스, 방법, 물품 또는 디바이스는 이러한 요소들을 포함할 뿐만 아니라 명확하게 리스트되지 않은 다른 요소들을 포함하거나, 또는 그러한 프로세스, 방법, 물품 또는 디바이스에 고유한 요소들을 또한 포함한다는 점에 주목한다. "포함하는"의 주체는 추가의 구속이 없다면 그 요소를 포함하는 프로세스, 방법, 물품 또는 디바이스에 추가의 동일한 요소들이 존재하는 것을 배제하지 않는다.
당업자라면 본 발명의 구현예가 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다는 것을 이해할 것이다. 그러므로 본 발명은 하드웨어만의 구현, 소프트웨어만의 구현, 또는 소프트웨어와 하드웨어의 조합에 의한 구현을 이용할 수 있다. 또한, 본 발명은 컴퓨터 사용가능 프로그램 코드를 포함한 하나 이상의 컴퓨터 사용가능 기억 매체(비제한적으로, 자기 디스크 메모리, CD-ROM, 광 메모리 등을 포함함)에서 구현되는 컴퓨터 프로그램 제품의 형태를 이용할 수 있다.
본 발명은 컴퓨터, 예를 들면 프로그램 모듈에 의해 실행되는 컴퓨터 실행가능 명령어와 관련하여 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 실행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 분산형 컴퓨팅 환경에서 또한 실시될 수 있다. 분산형 컴퓨팅 환경에서, 태스크는 통신 네트워크를 통해 접속된 원격 처리 장치에 의해 수행된다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 기억 장치를 포함한 국부 및 원격 컴퓨터 기억 매체 둘 다에 위치될 수 있다.
본 명세서에서의 구현예들은 점진적 방식으로 설명된다. 구현예의 동일하거나 유사한 부분에 대해서는 구현예들을 참조한다. 각각의 구현예는 다른 구현예들과의 차이점에 초점이 맞추어진다. 특히, 시스템 구현예는 기본적으로 방법 구현예와 유사하고, 그러므로 간략하게 설명된다. 관련 부분에 대해서는 방법 구현예의 관련 설명을 참조한다.
지금까지의 설명은 단지 본 발명의 구현예이고 본 발명을 제한하는 것으로 의도되지 않는다. 당업자라면 본 발명에 대하여 각종 수정 및 변경을 할 수 있을 것이다. 본 발명의 정신 및 원리 내에서 이루어지는 임의의 수정, 균등물 치환 또는 개선 등은 본 발명의 특허 청구범위의 범위 내에 포함된다.

Claims (20)

  1. 애플리케이션(APP)을 시작하는 방법에 있어서,
    제1 로컬 APP에 의해 웹 페이지를 열고 제2 로컬 APP을 웨이크업(wake up)하는 단계와;
    상기 제2 로컬 APP에 의해 로컬 서버를 시작하는 단계와;
    상기 제1 로컬 APP에 의해 자바스크립트(JavaScript, JS) 참조 요청을 상기 로컬 서버에 발송하는 단계와;
    상기 로컬 서버에 의해 반송된 응답을 수신한 경우, 지시된 다운로드 페이지로의 점프를 상기 제1 로컬 APP에 의해 중지하는 단계
    를 포함한 APP 시작 방법.
  2. 제1항에 있어서, 상기 웹 페이지의 링크 주소가 트리거되고 열릴 때, 상기 제1 로컬 APP은 대응하는 웹 페이지를 열고, 상기 제1 로컬 APP은 웹뷰(WebView) 컴포넌트를 통합한 브라우저 APP 또는 로컬 APP을 포함한 것인 APP 시작 방법.
  3. 제1항에 있어서, 상기 웹 페이지의 링크 주소가 트리거되고 열릴 때, 상기 제1 로컬 APP은, 상기 웹 페이지의 주소(address)에 포함된 파라미터들을 균일 리소스 식별자(uniform resource identifier, URI)에 결합하고, 상기 URI에 대응하는 제2 로컬 APP을 호출하여(invoke) 여는 것인 APP 시작 방법.
  4. 제1항에 있어서, 상기 JS 참조 요청을 상기 로컬 서버에 발송하는 단계는, JSONP(JSON with Padding)를 통해 상기 JS 참조 요청을 상기 로컬 서버에 발송하는 단계를 포함한 것인 APP 시작 방법.
  5. 제1항에 있어서, 상기 제1 로컬 APP에 의해 JS 참조 요청을 상기 로컬 서버에 발송하는 단계는, 웹 페이지에 <script> 태그를 동적으로 추가함으로써 발생되고 상기 로컬 서버의 주소를 포함하는 JS 참조 요청을, 상기 제1 로컬 APP에 의해 상기 로컬 서버에 발송하는 단계를 포함한 것인 APP 시작 방법.
  6. 제5항에 있어서, 상기 제1 로컬 APP에 의해 발송된 JS 참조 요청은 포트 번호를 포함하고, 상기 포트 번호는, 디폴트 값 또는 제2 로컬 APP에 의해 시작된 상기 로컬 서버와 상기 제1 로컬 APP에 의해 사전 협의된 포트 번호인 것인 APP 시작 방법.
  7. 제6항에 있어서, 상기 제2 로컬 APP은, 상기 로컬 서버를 시작하고, 상기 포트 번호를 사전 협의된 포트 번호들의 그룹 내의 제1 포트 번호로 설정하며;
    상기 제1 로컬 APP에 의해 발송된 JS 참조 요청은, 상기 사전 협의된 포트 번호들의 그룹 내의 제1 포트 번호를 포함한 것인 APP 시작 방법.
  8. 제7항에 있어서, 상기 제2 로컬 APP은, 상기 로컬 서버를 시작하고, 상기 설정된 제1 포트 번호가 점유되어 있는 경우 상기 포트 번호를 사전 협의된 포트 번호들의 그룹 내의 제2 포트 번호로 설정하며;
    상기 제1 로컬 APP은, 상기 제1 포트 번호를 이용함으로써 상기 JS 참조 요청을 발송하고, 상기 제1 로컬 APP이 상기 로컬 서버에 의해 반송된 응답을 미리 정해진 지속기간 내에 수신하지 않은 경우, 상기 사전 협의된 포트 번호들의 그룹 내의 제2 포트 번호를 이용함으로써 상기 JS 참조 요청을 발송하는 것인 APP 시작 방법.
  9. 제1항에 있어서, 상기 로컬 서버에 의해 반송된 응답을 수신한 경우, 지시된 다운로드 페이지로의 점프를 상기 제1 로컬 APP에 의해 중지하는 단계는,
    상기 로컬 서버에 의해 반송된 응답을 미리 정해진 응답 시구간 내에 수신한 경우, 지시된 다운로드 페이지로의 점프를 상기 제1 로컬 APP에 의해 중지하는 단계를 포함한 것인 APP 시작 방법.
  10. 제9항에 있어서, 상기 제1 로컬 APP이 상기 로컬 서버에 의해 반송된 응답을 미리 정해진 응답 시구간 내에 수신하지 않은 경우, 지시된 다운로드 페이지로 상기 제1 로컬 APP에 의해 점프하는 단계를 더 포함한 APP 시작 방법.
  11. APP을 시작하는 시스템에 있어서,
    웹 페이지를 열고 제2 로컬 APP을 호출하도록 구성되며, JS 참조 요청을 로컬 서버에 발송하도록 또한 구성되고, 상기 로컬 서버에 의해 반송된 응답을 수신한 때 지시된 다운로드 페이지로의 점핑을 중지하도록 또한 구성된 제1 로컬 APP과;
    상기 로컬 서버를 시작하도록 구성된 제2 로컬 APP과;
    상기 제1 로컬 APP에 의해 발송된 JS 참조 요청을 수신하고, 상기 JS 참조 요청을 수신한 때 상기 제1 로컬 APP에 상기 응답을 반송하도록 구성된 로컬 서버
    를 포함한 APP 시작 시스템.
  12. 제11항에 있어서, 상기 웹 페이지의 링크 주소가 트리거되고 열릴 때, 상기 제1 로컬 APP은 대응하는 웹 페이지를 열고, 상기 제1 로컬 APP은 웹뷰 컴포넌트를 통합한 브라우저 APP 또는 로컬 APP을 포함한 것인 APP 시작 시스템.
  13. 제11항에 있어서, 상기 웹 페이지의 링크 주소가 트리거되고 열릴 때, 상기 제1 로컬 APP은, 상기 웹 페이지의 주소에 포함된 파라미터들을 URI에 결합하고, 상기 URI에 대응하는 제2 로컬 APP을 호출하여 여는 것인 APP 시작 시스템.
  14. 제11항에 있어서, 상기 JS 참조 요청은 상기 로컬 서버에 발송되고, 이것은 JSONP를 통해 상기 JS 참조 요청을 상기 로컬 서버에 발송하는 것을 포함한 것인 APP 시작 시스템.
  15. 제11항에 있어서, 상기 제1 로컬 APP이 상기 JS 참조 요청을 상기 로컬 서버에 발송하고, 이것은, 상기 제1 로컬 APP이, 상기 로컬 서버의 주소에 <script> 태그를 동적으로 추가함으로써 발생되고 상기 로컬 서버의 주소를 포함하는 JS 참조 요청을 상기 로컬 서버에 발송하는 것을 포함한 것인 APP 시작 시스템.
  16. 제15항에 있어서, 상기 제1 로컬 APP에 의해 발송된 상기 JS 참조 요청은 포트 번호를 포함하고, 상기 포트 번호는, 디폴트 값 또는 제2 로컬 APP에 의해 시작된 상기 로컬 서버와 상기 제1 로컬 APP에 의해 사전 협의된 포트 번호인 것인 APP 시작 시스템.
  17. 제16항에 있어서, 상기 제2 로컬 APP은, 상기 로컬 서버를 시작하는 프로세스에서 상기 포트 번호를, 사전 협의된 포트 번호들의 그룹 내의 제1 포트 번호로 설정하고;
    상기 제1 로컬 APP에 의해 발송된 상기 JS 참조 요청은, 상기 사전 협의된 포트 번호들의 그룹 내의 제1 포트 번호를 포함한 것인 APP 시작 시스템.
  18. 제17항에 있어서, 상기 제2 로컬 APP은, 상기 로컬 서버를 시작하고, 상기 설정된 제1 포트 번호가 점유되어 있는 경우 상기 포트 번호를 사전 협의된 포트 번호들의 그룹 내의 제2 포트 번호로 설정하며;
    상기 제1 로컬 APP은, 상기 제1 포트 번호를 이용함으로써 상기 JS 참조 요청을 발송하고, 상기 제1 로컬 APP이 상기 로컬 서버에 의해 반송된 응답을 미리 정해진 지속기간 내에 수신하지 않은 경우, 상기 사전 협의된 포트 번호들의 그룹 내의 제2 포트 번호를 이용함으로써 상기 JS 참조 요청을 발송하는 것인 APP 시작 시스템.
  19. 제11항에 있어서, 상기 제1 로컬 APP은, 상기 로컬 서버에 의해 반송된 응답을 수신한 때, 상기 지시된 다운로드 페이지로의 점프를 중지하고, 이것은, 상기 제1 로컬 APP이, 상기 로컬 서버에 의해 반송된 응답을 미리 정해진 응답 시구간 내에 수신한 경우, 상기 지시된 다운로드 페이지로의 점프를 중지하는 것을 포함한 것인 APP 시작 시스템.
  20. 제19항에 있어서, 상기 제1 로컬 APP은, 상기 제1 로컬 APP이 상기 로컬 서버에 의해 반송된 응답을 미리 정해진 응답 시구간 내에 수신하지 않은 경우, 상기 지시된 다운로드 페이지로 점프하는 것인 APP 시작 시스템.
KR1020187035144A 2016-05-11 2017-05-04 애플리케이션 시작 방법 및 시스템 KR102297817B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610312307.4 2016-05-11
CN201610312307.4A CN107370778B (zh) 2016-05-11 2016-05-11 一种启动应用的方法和***
PCT/CN2017/083023 WO2017193864A1 (zh) 2016-05-11 2017-05-04 一种启动应用的方法和***

Publications (2)

Publication Number Publication Date
KR20190008267A true KR20190008267A (ko) 2019-01-23
KR102297817B1 KR102297817B1 (ko) 2021-09-07

Family

ID=60266184

Family Applications (1)

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

Country Status (10)

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

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 百度国际科技(深圳)有限公司 应用唤起方法、装置、电子设备及计算机可读存储介质
CN111338898B (zh) * 2020-02-24 2023-04-07 支付宝(杭州)信息技术有限公司 应用状态获取方法、装置、电子设备及可读存储介质
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 北京健康之家科技有限公司 程序启动反馈方法、装置、终端设备、服务器及存储介质

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
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
US20120317172A1 (en) * 2011-06-13 2012-12-13 International Business Machines Corporation Mobile web app infrastructure
CN103810033A (zh) * 2012-11-15 2014-05-21 腾讯科技(深圳)有限公司 一种检测用程序启动的方法和装置
CN104809213A (zh) * 2015-04-29 2015-07-29 努比亚技术有限公司 启动应用软件客户端的方法、装置和***

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
US20100083102A1 (en) * 2008-09-26 2010-04-01 Juan Carlos Jimenez Online Content Editing of Dynamic Websites
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 中兴通讯股份有限公司 移动终端浏览器调用本地应用的方法及装置
AU2012332626A1 (en) * 2011-11-01 2014-05-22 Google Llc 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
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 富士通株式会社 通信方法、情報処理装置、及びプログラム
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 ブラザー工業株式会社 アプリケーションプログラム

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
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
US20120317172A1 (en) * 2011-06-13 2012-12-13 International Business Machines Corporation Mobile web app infrastructure
CN103810033A (zh) * 2012-11-15 2014-05-21 腾讯科技(深圳)有限公司 一种检测用程序启动的方法和装置
CN104809213A (zh) * 2015-04-29 2015-07-29 努比亚技术有限公司 启动应用软件客户端的方法、装置和***

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102297817B1 (ko) 애플리케이션 시작 방법 및 시스템
EP3457666B1 (en) Method and system for starting an application
US10565591B2 (en) Bridge for communicating data outside of a mobile application
CN107168960B (zh) 一种业务执行方法及装置
CN107092475B (zh) 一种交互控件的调用方法及装置
JP2020505681A (ja) データ取得方法およびデバイス
KR20190082920A (ko) 서비스 처리 방법 및 장치
CN107016282B (zh) 一种信息处理方法及装置
CN111124544A (zh) 界面显示方法、装置、电子设备及存储介质
CN114546639A (zh) 服务调用处理方法及装置
CN113536174A (zh) 一种界面加载方法、装置及设备
CN111078435A (zh) 业务处理方法、装置及电子设备
CN112925527B (zh) 一种调用方法、装置、存储介质及电子设备
CN113934474A (zh) 一种业务处理方法、装置和电子设备
CN110912903B (zh) 跨域访问方法及装置
CN117742978A (zh) 程序执行方法及相关设备
CN112579190A (zh) 网页内嵌应用交互方法及装置
CN116170486A (zh) 一种远程服务调用方法、设备及介质

Legal Events

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