KR102159416B1 - 하이브리드 모바일 애플리케이션을 구축하고 사용하는 시스템 및 방법 - Google Patents

하이브리드 모바일 애플리케이션을 구축하고 사용하는 시스템 및 방법 Download PDF

Info

Publication number
KR102159416B1
KR102159416B1 KR1020157019103A KR20157019103A KR102159416B1 KR 102159416 B1 KR102159416 B1 KR 102159416B1 KR 1020157019103 A KR1020157019103 A KR 1020157019103A KR 20157019103 A KR20157019103 A KR 20157019103A KR 102159416 B1 KR102159416 B1 KR 102159416B1
Authority
KR
South Korea
Prior art keywords
native
client application
remote client
application
user
Prior art date
Application number
KR1020157019103A
Other languages
English (en)
Other versions
KR20150108364A (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 KR20150108364A publication Critical patent/KR20150108364A/ko
Application granted granted Critical
Publication of KR102159416B1 publication Critical patent/KR102159416B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of 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
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • User Interface Of Digital Computer (AREA)
  • Selective Calling Equipment (AREA)

Abstract

모바일 장치의 사용자들용 하이브리드 원격 클라이언트 애플리케이션을 구축하여 이들 사용자에게 제공하는 시스템 및 기법들이 제시된다. 사용자가 원격 클라이언트 애플리케이션에 액세스할 때, 모바일 장치는 사용자에게 원격 클라이언트 애플리케이션과 연관된 허용가능한 동작들의 리스트를 제공하는 통합형(unified) 사용자 인터페이스(UI)를 론칭할 수 있다. 이들 허용가능한 동작은, 예컨대 HTML 웹페이지를 통해 원격 클라이언트 애플리케이션에 의해 제공되는 자바스크립트 동작을 포함할 수 있다. 또한, 허용가능한 동작은 모바일 장치의 네이티브 SDK에 의해 제공되는 네이티브 동작을 포함할 수 있다.

Description

하이브리드 모바일 애플리케이션을 구축하고 사용하는 시스템 및 방법{SYSTEMS AND METHODS FOR BUILDING AND USING HYBRID MOBILE APPLICATIONS}
모바일 및/또는 기타 컴퓨팅 플랫폼용 클라이언트 애플리케이션을 구축하는 분야에서는, 현재 클라이언트 애플리케이션을 구축하는 2개의 주요한 옵션이 존재하는데, 즉, (1) HTML+자바스크립트(JavaScript)를 이용하는 것과, (2) 클라이언트 특정 네이티브 소프트웨어 개발 킷(SDK: Software Development Kit)을 이용하는 것이 있다.
HTML 접근법을 이용하는 것의 하나의 가능한 이점은 이것이 기본적으로 한 번의 기록으로 어디에서든(즉, 어떠한 플랫폼에서도) 실행되는(write-once, run-anywhere) 솔루션이며 업데이트하기가 매우 쉽다는 것이다. 그러나, 일부 플랫폼, 특히 모바일 플랫폼에서는, 예컨대 로컬 앨범이나 연락처 목록과 같은 로컬 리소스에 액세스하는데 몇몇 제한이 있을 수 있는데, 이는 순수한 HTML 애플리케이션(예컨대, Microsoft SkyDrive®storage apps)을 구축하고자 할 때 바람직하지 않을 수 있다.
반면에, 네이티브 SDK 접근법을 이용하는 것의 하나의 가능한 이점은 애플리케이션이 플랫폼 상에서 대부분의 리소스를 로컬로 이용할 수 있다는 것이다. 그러나, 이 방법은 상이한 플랫폼에 걸쳐 확장가능(scalable)하지는 않은데, 예컨대, 각각의 플랫폼은 일반적으로 상이한 SDK을 가지며 단일 애플리케이션에 대한 상이한 버전을 개발할 필요가 있을 수 있다.
다음은 본 명세서에 기술된 일부 특징들의 기본적인 이해를 제공하기 위해 본 발명의 단순화된 개요를 제시한다. 본 개요는 청구범위의 광범위한 개관이 아니다. 본 개요는 청구항의 청구대상의 핵심적인 특징이나 필수적인 특징들을 밝히고자 함이 아니며, 청구항의 청구대상의 범위를 결정하고자 하는 것도 아니다. 그 유일한 목적은 후술하는 발명의 상세한 설명에 대한 서두로서 간략한 형태로 청구항의 청구대상의 일부 개념을 제시하기 위한 것이다.
모바일 장치의 사용자용 하이브리드 원격 클라이언트 애플리케이션을 구축하여 이를 사용자에게 제공하는 시스템 및 기법들이 제시된다. 사용자가 원격 클라이언트 애플리케이션에 액세스하면, 모바일 장치는 사용자에게 원격 클라이언트 애플리케이션과 연관된 허용가능한 동작들의 리스트를 제공하는 통합형(unified) UI를 론칭할 수 있다. 이들 허용가능한 동작은, 예컨대 HTML 웹페이지를 통해 원격 클라이언트 애플리케이션에 의해 제공되는 자바스크립트 동작을 포함할 수 있다. 또한, 허용가능한 동작은 모바일 장치의 네이티브 SDK를 사용하여 구현되는 네이티브 동작을 포함할 수 있다.
일실시예에서, 프로세서와, 원격 클라이언트 애플리케이션과 통신할 수 있는 통신 모듈과, 프로세서에 의해 실행될 수 있고, 통신 모듈을 통해 원격 클라이언트 애플리케이션과 통신할 수 있는 애플리케이션 제어기를 포함하는 시스템이 제공된다. 애플리케이션 제어기는 또한 원격 클라이언트 애플리케이션에게 원격 클라이언트 애플리케이션이 적어도 하나의 네이티브 동작을 포함하는지 여부를 질의할 수 있다.
다른 실시예에서, 모바일 장치의 네이티브 SDK로부터 생성된 네이티브 동작을 실행할 수 있는 모바일 장치 상에서 하이브리드 모바일 애플리케이션을 실행하는 방법이 제공되는데, 이 방법은 모바일 애플리케이션의 사용자 개시 시에, 애플리케이션 제어기를 로딩하는 단계를 포함하며, 상기 애플리케이션 제어기는 원격 클라이언트 애플리케이션 기능 및 네이티브 동작에 액세스하도록 허용하는 사용자 인터페이스(UI)를 사용자에게 제공할 수 있다.
또 다른 실시예에서, 모바일 장치의 사용자에게 사용자 인터페이스(UI)를 제공하는 방법이 개시된다. 이 UI는 사용자가 원격 클라이언트 애플리케이션과 연관된 기능에 액세스할 수 있게 하며, 이 방법은 UI를 사용자에게 제공하는 단계 -상기 UI는 상기 원격 클라이언트 애플리케이션과 연관된 동작들을 작동시키기 위한 버튼들을 더 포함함- 와, 사용자 선택 시에, 원격 클라이언트 애플리케이션과 연관된 동작들 중 하나의 동작을 호출하는 단계를 포함하고, 이들 동작은 원격 클라이언트 애플리케이션에 의해 실행된 원격 동작 및 모바일 장치에 의해 실행된 네이티브 동작을 포함하는 그룹의 한 동작을 포함한다.
본 시스템의 다른 특징 및 측면들은 본 출원에서 제공되는 도면을 참조한 아래 상세한 설명에 제시된다.
예시적인 실시예들은 도면의 참조도로 도시된다. 실시예들 및 도면들은 한정적이라기보다는 예시적인 것으로 고려되어야 한다.
도 1은 본 출원의 원리에 따라 이루어진 하이브리드 모바일 애플리케이션을 사용하는 시스템의 일실시예를 도시한 것이다.
도 2는 본 출원의 원리에 따라 이루어진 하이브리드 모바일 애플리케이션을 개시하기 위한 흐름도의 일실시예를 도시한 것이다.
도 3은 하이브리드 모바일 애플리케이션을 처음에 로딩하는 흐름도의 일실시예를 도시한 것이다.
도 4는 모바일 장치에 최종 로딩할 때 하이브리드 모바일 애플리케이션을 작동시키는 흐름도의 일실시예를 도시한 것이다.
도 5는 모바일 장치로의 하이브리드 모바일 애플리케이션의 로딩 에러를 처리하기 위한 흐름도의 일실시예를 도시한 것이다.
도 6은 사용자가 하이브리드 모바일 애플리케이션의 맥락에서 가능한 동작을 선택할 때의 모바일 장치의 동작에 대한 흐름도의 일실시예를 도시한 것이다.
본 명세서에서 사용되는 바와 같이, "컴포넌트", "시스템", "인터페이스" 등의 용어는 컴퓨터 관련 개체, 하드웨어, (예컨대 실행 중인)소프트웨어, 및/또는 펌웨어를 지칭하기 위한 것이다. 예를 들어, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 객체, 실행화일, 프로그램, 및/또는 컴퓨터일 수 있다. 예를 들어, 서버에서 실행되는 애플리케이션 및 서버 모두가 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 하나의 프로세스 내에 존재할 수 있으며, 하나의 컴포넌트가 하나의 컴퓨터 상에 위치할 수도 있고 둘 이상의 컴퓨터 사이에 분산될 수도 있다.
청구항의 청구대상은 도면을 참조하여 설명되는데, 여기서 유사한 참조번호는 도면 전체에서 유사한 요소를 지칭하는데 사용된다. 이하의 설명에서는, 설명을 위해, 본 발명을 철저히 이해할 수 있도록 제공되는 다수의 특정 세부사항이 개시된다. 그러나, 청구항의 청구대상은 이들 특정 세부사항 없이 실시될 수도 있다. 다른 예에서는, 본 발명의 설명을 용이하게 하기 위해 잘 알려진 구조 및 장치가 블록도로 도시된다.
서론
전술한 바와 같이, HTML(hypertext markup language) 및 자바스크립트를 사용하여 구축되는 종래의 클라이언트 애플리케이션은 플랫폼 특정 리소스에 액세스하는 동안 제한을 가질 수 있다. 그러나, 소프트웨어 개발 킷(SDK)을 사용하여 클라이언트 애플리케이션을 구축하는 것은 플랫폼 의존성의 문제를 가질 수 있다.
본 출원의 다수의 실시예들은 HTML 및 네이티브 SDK를 사용하여 애플리케이션을 구축 및/또는 이용하는 하이브리드 접근방법을 제공하는 시스템 및 방법을 개시한다. 적어도 하나의 실시예에서, 시스템 및 방법은 (a) 애플리케이션이 플랫폼 특정 리소스에 액세스하도록 허용하고/하거나, (b) 네이티브 SDK 및 자바스크립트 모두로 구현된 동작을 제공하는 통합형 UI 경험을 포함하고/하거나, (c) 제공된 동작들 및 이들 동작에 대한 파라미터에 대한 정보를 HTML이 포함하도록 허용할 수 있다.
도 1은 일반적인 환경(100)에서 동작할 수 있는 본 출원의 시스템 및/또는 방법의 일실시예를 도시한 것이다. 모바일 장치(102)는 임의의 수의 장치들(예컨대, 랩탑, 태블릿, 스마트폰 등) 중 하나일 수 있으며, 일반적으로 프로세서, 메모리, 통신 모듈(예컨대, 무선 및/또는 유선) 및 운영 체제를 포함한다. 오늘날의 모바일 공간에서는, 사용자들이 선택할 수 있는 다수의 상이한 경합하는 운영 체제가 존재한다.
흔히, (예컨대, 서버(108)에서 작업하는)애플리케이션 개발자들은 모바일 및/또는 클라이언트 애플리케이션(112)을 구축할 수 있으며 이들을 인터넷(110)(및/또는 다른 커머스/통신의 채널)상에 올려 모바일 장치 사용자들이 액세스가능하도록 할 수 있다. 애플리케이션(112)은 당해 기술분야에서 알려진 바와 같이, HTML, 자바스크립트 및 CSS를 사용하여 구축될 수 있다. 그러나, 전술한 바와 같이 이러한 애플리케이션은 모바일 장치 자체의 로컬 리소스 전체에 액세스하지 못할 수 있으며, 따라서 가능한 대로 사용자에게 강력하지 않을 수도 있다.
애플리케이션 제어기(104)는 통합형(및/또는 단일형) 사용자 인터페이스(UI)로서 모바일 사용자에게 제공되어, 애플리케이션(112)이 동작 컨테이너(106)를 통해 로컬 리소스에 액세스할 수 있게 한다. 동작 컨테이너는 사용자가 애플리케이션과 연관된 동작을 론치할 수 있게 하는 동작 버튼(106a, 106b, 106c)을 포함할 수 있다. 동작 컨테이너(106)는, 사용자에게 예컨대 툴바 등으로서 보이도록 구현될 수도 있다.
도 1에 도시된 바와 같이, 사용자가 모바일 애플리케이션(112)과 상호작용함에 따라, 애플리케이션 제어기(104)는, 본 명세서에 상세히 논의되는 바와 같이, 애플리케이션의 기능에 액세스하기 위한 복수의 방법, 즉 HTML 페이지(114a) 상에 자바스크립트를 호출하는 것 및 (2) 네이티브 SDK로 구현된 동작을 호출하는 것 중 하나를 이용할 수 있다. 애플리케이션에 액세스하기 위해 어느 방법을 선택할지는 사용자에게 투명(transparent)할 수 있다. 본 명세서에 개시된 바와 같이, (예컨대, 네이티브 SDK로 구현된 동작을 호출하기 위한)"GetOperation" 콜이, 모바일 애플리케이션이 모바일 장치에 대한 네이티브 동작으로서 보다 잘 동작, 기능 및/또는 작용할 수 있는 한 방법일 수 있다. HTML 페이지가 로딩되고 애플리케이션 제어기가 지원되는 동작 리스트를 검색하기 위해 GetOperation을 호출할 수 있을 때, 액션(114b)이 일어날 수 있다. 일실시예에서, 본 시스템은 (원격으로 액세스될 수 있는)모바일 애플리케이션의 HTML 및 모바일 장치의 SDK를 모두 사용하여 모바일 애플리케이션을 구축할 수 있다. 이런 시스템은 HTML 및 네이티브 SDK의 능력을 결합하는 경향이 있다.
이 실시예에서, (애플리케이션 제어기에 제공될 수 있는)메인 콘텐츠 뷰가 HTML+자바스크립트(애플리케이션의 "HTML 부분"이라 함), 및 애플리케이션 제어기에서 호스팅된 동작(애플리케이션의 "네이티브 부분(native part)"이라 함)일 수 있다. 동작들은 실제 기능 로직(즉, 자바스크립트 또는 네이티브 SDK로 구현됨) 및 UI 요소(예컨대, 동작 컨테이너 내의 버튼)의 조합일 수 있다.
애플리케이션 제어기에서 사용자에게 보여지는 UI는 사용자가 그 페이지에서 하는 동작들을 위한 통합형 UI(예컨대, "동작 컨테이너"라고 하는 메뉴나 툴 바)를 제공할 수 있다. 일실시예에서, 동작 컨테이너는 네이티브 SDK에 의해 구현된 제어부를 포함할 수 있다(따라서 네이티브 SDK에 의해 구현된 다른 로직을 호출할 수 있다). 예를 들어, 이들 동작은 자바스크립트에 의해 액세스가능하지 않은 리소스에 액세스할 수 있는 네이티브 SDK로 구현된 로직일 수 있다. 또는, 이들 동작은 애플리케이션 제어기에서 호스팅된 자바스크립트에 의해 구현된 로직일 수 있다.
도 2는 네트워크 또는 인터넷 등에 상주하는 원격 클라이언트 애플리케이션과 연관될 수 있는 모바일 애플리케이션과 관련하여 애플리케이션 제어기가 어떻게 기능하는지에 대한 일실시예(200)를 도시한 것이다. 202에서, 모바일 사용자가, 예컨대 일부 사용자 명령의 방식(예컨대, 터치 스크린, 음성 활성화, 텍스트 타이핑 등)으로, 모바일 애플리케이션을 개시하고자 할 수 있다. 204에서, 모바일 장치 또는 모바일 애플리케이션이 애플리케이션 제어기를 개시할 수 있다. 애플리케이션 제어기는 사용자에게 HTML 페이지를 로딩하거나, 디스플레이하거나 또는 보여주고 그 페이지 상에 JS 메소드를 호출하는 기능을 제공할 수 있는 웹 뷰 제어기를 개시할 수 있다. 206에서, 애플리케이션 제어기는 웹 뷰 제어기 및/또는 상기 원격 클라이언트 애플리케이션에 복수의 콜백을 등록할 수 있다. 마지막으로, 208에서, HTML 내의 메인 콘텐츠가 애플리케이션 제어기에 로딩될 수 있다.
일실시예에서, 도 3의 302에서 애플리케이션 제어기는 "로딩 시작" 루틴/모듈을 개시할 수 있다. 모바일 애플리케이션이 완전히(그리고 성공적으로) 로딩되기 전에, 304에서 애플리케이션 제어기가 동작 컨테이너를 사용금지할 수 있다. HTML 내의 모바일 애플리케이션이 애플리케이션 제어기에 로딩되는 동안, 306에서 로딩 표시기가 보여지거나 모바일 장치의 사용자에게 전달될 수 있다.
동작 컨테이너
일실시예에서, 통합된 룩 앤드 필(look-and-feel)로 동작 컨테이너를 구성하는 것이 가능할 수 있다. 이러한 실시예에서는, 몇 가지 점에 대해, 예컨대 현재 페이지에서 어떤 동작이 허용되는지 (2) 각 동작의 파라미터에 대해, 네이티브 부분이 HTML 부분과 통신하게 하는 것이 가능할 수 있다.
HTML 페이지가 그러한 정보를 호스트하게 하는 것이 가능하다. 또한, 네이티브 부분이 몇몇 포맷으로, 예컨대, 동작 데이터 구조의 리스트로 정보를 리턴할 수 있는 통신, 예컨대, "getOperation"을 호출하게 하는 것이 가능할 수 있다. 동작 데이터 구조(Operation data structure)의 한 실시예로 다음과 같은 형태를 들 수 있다.
Figure 112015068484527-pct00001
이 실시예에서, "네이티브(native)" 플래그는 동작이 네이티브 구현 로직인지 아니면 자바스크립트 콜인지를 나타낼 수 있다. "네이티브(native)"가 참(true)이면, 네이티브 부분이 동작이 지원되는지 여부를 검사하게 하는 것이 가능하다. Id 및 버전(version)은 동작을 식별하는데, 예를 들면, 이 동작은 '복수의 파일을 골라서 업로드하기(pick multiple files and upload)"와 같은 동작일 수 있다. 이러한 추정 동작은 사용자가 장치의 카메라 롤(camera roll)에 대한 복수의 사진을 골라서 클라우드 저장부에 업로드할 수 있게 한다. 이러한 동작은 몇몇 플랫폼 상에서 네이티브 SDK로 행해질 수 있다.
동작이 지원되면, 네이티브 부분은 (예컨대, 동작 컨테이너 내의 버튼 또는 메뉴 상의)제목 및 iconUrl(예컨대, 메뉴 또는 버튼의 아이콘 파일 URL)에 의해 제공된 추가 정보를 사용하여 동작 컨테이너 내에 동작을 보여줄 수 있다. 동작이 지원되지 않으면, 그 동작은 무시되거나 사용금지될 수 있다. 동작이 사용자에 의해 선택될 경우, 애플리케이션 제어기는 그 동작이 필요로 하는 파라미터를 포함하는 invokeParameter(예컨대, 이 예에서는 업로드 목적지 폴더)를 취하고 네이티브 로직을 호출할 수 있다.
"네이티브(native)"가 거짓(false)이면, 동작은 HTML 페이지 내의 자바스크립트 메소드를 호출할 수 있다. 이 경우, 동작은 동작 컨테이너에서 보여질 수 있다. 사용자가 동작을 선택하면, 모바일 장치(예컨대, 애플리케이션 제어기를 통해)는 invokeParameter에 직접 인코딩된 자바스크립트 메소드를 호출할 수 있다.
기타 실시예들
도 4는 모바일 애플리케이션의 성공적인 로딩 시에 애플리케이션 제어기에 대한 흐름도의 일실시예를 도시한 것이다. 이 흐름도(400)에서, 애플리케이션 제어기는 402에서 성공적인 로딩을 결정할 수 있다. 404에서 로딩이 완료되거나 종료되었음을 사용자에게 통지하기 위해 로딩 표시기가 제거되거나 삭제될 수 있다. 406에서, 애플리케이션 제어기는 현재의 모바일 애플리케이션 페이지에 GetOperation을 호출할 수 있다. 408에서 애플리케이션 제어기는 GetOperation으로부터의 리턴값이 유효한지를 모니터링할 수 있다. 리턴값이 유효하면, 동작 컨테이너는 410에서 지정된 지원 동작으로 채워질 수 있다. 리턴값이 유효하지 않으면, 412에서 애플리케이션 제어기는 동작 컨테이너를 사용금지할 수 있다.
도 5는 502에서 실패한 로딩을 처리하기 위한 흐름도의 일실시예를 도시하고 있다. 504에서 애플리케이션 제어기는 동작 컨테이너를 사용금지할 수 있고, 506에서 로딩 표시기를 제거할 수 있으며, 508에서 에러 메시지를 사용자에게 보여줄 수 있다.
도 6은 사용자 및/또는 시스템이 동작 컨테이너 내에 보여지거나 디스플레이될 수 있는 것을 선택할 수 있는 동작을 실행하는 흐름도의 일실시예를 도시한 것이다. 602에서, 사용자 또는 시스템에 의해 (예컨대, 동작 컨테이저 내의)동작이 선택될 수 있다. 그 다음에 604에서 애플리케이션 제어기는 선택된 동작이 "네이티브" 동작인지의 여부를 판별할 수 있다. 동작이 "네이티브"이면, 애플리케이션 제어기는 네이티브 로직을 호출할 수 있다. 그렇지 않으면, 608에서 애플리케이션 제어기는 자바스크립트 메소드를 호출할 수 있다.
전술한 사항은 본 발명의 예들을 포함한다. 물론, 청구항의 청구대상을 기술하기 위한 목적으로 컴포넌트들 또는 방법들의 모든 조합을 기술하는 것은 가능하지 않지만, 당업자라면 본 발명의 다른 많은 조합 및 변경들이 가능함을 이해할 수 있을 것이다. 따라서, 청구항의 청구대상은 첨부한 청구범위의 사상 및 범주 내에 포함되는 그러한 변경들, 수정들 및 변화들을 모두 포함하고자 한다.
구체적으로, 전술한 컴포넌트, 장치, 회로, 시스템 등에 의해 수행되는 다양한 기능들과 관련하여, 이러한 컴포넌트들을 설명하기 위해 사용된 ("수단"을 포함한)용어들은, 달리 언급하지 않는 한, 비록 청구항의 청구대상의 예시적인 특징들의 기능을 수행하는 개시된 구조와 엄격하게 동일하지는 않을지라도 기술된 컴포넌트의 지정된 기능을 수행하는 임의의 컴포넌트에 대응할 것이다. 이와 관련하여, 본 발명은 청구항의 청구대상의 다양한 방법의 동작 및/또는 이벤트를 수행하는 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체 및 시스템을 포함함을 이해할 수 있을 것이다.
또한, 여러 구현예들 중 하나의 구현예에 대해서만 본 발명의 특정한 특징이 기술되었을 수 있지만, 그러한 특징은 임의의 주어진 또는 특정한 애플리케이션에 대해 바람직하고 유익할 수 있는 다른 구현예들의 하나 이상의 다른 특징들과 조합될 수도 있다. 또한, 상세한 설명이나 청구항에서 사용되는 용어 "포함한다"와 "포함" 및 그 변형어들은 "포괄"이란 용어와 유사하게 포괄적으로 사용하기 위한 것이다.

Claims (20)

  1. 클라이언트 장치에서 하이브리드 클라이언트 애플리케이션을 호스팅하는 시스템으로서,
    상기 하이브리드 클라이언트 애플리케이션은, 네이티브 동작(native operation) 및 원격 시스템 상에서 호스트되는 원격 클라이언트 애플리케이션에 대한 호출을 포함하는 그룹 중 하나로서 실행될 수 있는, 적어도 하나의 동작을 포함하며,
    상기 시스템은,
    프로세서와,
    상기 원격 시스템 상에서 호스트되는 원격 클라이언트 애플리케이션과 통신하도록 구성된 통신 모듈과,
    상기 통신 모듈을 통해 원격 클라이언트 애플리케이션과 통신하도록 구성된 애플리케이션 제어기를 포함하되,
    상기 애플리케이션 제어기는
    동작이 네이티브 동작 및 원격 클라이언트 애플리케이션에 대한 호출로서 실행될 수 있는지 여부를 판정하고,
    상기 동작이 네이티브 동작이고 지원되는지 여부를 검사하며,
    상기 네이티브 동작이 지원되지 않으면 상기 네이티브 동작을 디스에이블하고,
    상기 네이티브 동작이 디스에이블되면, 상기 원격 클라이언트 애플리케이션에 대한 호출을 하는
    시스템.
  2. 제1항에 있어서,
    상기 애플리케이션 제어기는, 또한, 상기 원격 클라이언트 애플리케이션의 기능에 액세스하도록 구성되는
    시스템.
  3. 제2항에 있어서,
    상기 애플리케이션 제어기는, 또한, 상기 원격 클라이언트 애플리케이션으로부터 자바스크립트 기능을 호출하도록 구성되는
    시스템.
  4. 제2항에 있어서,
    상기 애플리케이션 제어기는, 또한, 네이티브 SDK로 구현된 동작을 호출하도록 구성되는
    시스템.
  5. 제1항에 있어서,
    상기 애플리케이션 제어기는, 또한, 웹 뷰 제어기를 포함하고, 상기 웹 뷰 제어기는 상기 원격 클라이언트 애플리케이션과 연관된 HTML 페이지를 로딩하도록 구성되는
    시스템.
  6. 제5항에 있어서,
    상기 애플리케이션 제어기는 상기 웹 뷰 제어기에 적어도 하나의 콜백을 등록하도록 구성되는
    시스템.
  7. 제6항에 있어서,
    상기 웹 뷰 제어기는, 또한, 상기 HTML 페이지를 사용자에게 디스플레이하도록 구성되는
    시스템.
  8. 제7항에 있어서,
    상기 웹 뷰 제어기는, 또한, 상기 HTML 페이지의 자바스크립트 메소드를 호출하도록 구성되는
    시스템.
  9. 제1항에 있어서,
    상기 애플리케이션 제어기는, 또한, 동작 컨테이너(operation container)를 포함하고, 상기 동작 컨테이너는 사용자가 상기 원격 클라이언트 애플리케이션과 연관된 동작을 론칭할 수 있도록 하는 동작 버튼을 포함하는
    시스템.
  10. 모바일 장치 상에서 하이브리드 모바일 애플리케이션을 실행하는 방법으로서,
    상기 모바일 장치는 상기 모바일 장치의 네이티브 SDK로부터 생성된 네이티브 동작을 실행하도록 구성되고,
    상기 방법은,
    사용자가 모바일 애플리케이션을 개시할 경우, 애플리케이션 제어기를 로딩하는 단계 - 상기 애플리케이션 제어기는 원격 클라이언트 애플리케이션 기능 및 네이티브 동작에 액세스할 수 있게 하는 사용자 인터페이스(UI)를 상기 사용자에게 제공하도록 구성됨 - 와,
    상기 사용자가 동작을 호출하는 경우, 상기 동작이 적어도 하나의 네이티브 동작을 포함하는지를 검사하는 단계와,
    상기 적어도 하나의 네이티브 동작이 지원되는지를 검사하는 단계와,
    상기 적어도 하나의 네이티브 동작이 지원되지 않으면 상기 적어도 하나의 네이티브 동작을 디스에이블하는 단계와,
    상기 원격 클라이언트 애플리케이션에 대한 호출을 하는 단계를 포함하는
    방법.
  11. 제10항에 있어서,
    상기 원격 클라이언트 애플리케이션과 연관된 HTML 웹 페이지를 로딩하는 단계를 더 포함하는
    방법.
  12. 제11항에 있어서,
    상기 원격 클라이언트 애플리케이션과 연관된 상기 HTML 웹 페이지의 뷰를 상기 사용자에게 제공하는 단계를 더 포함하는
    방법.
  13. 제12항에 있어서,
    상기 애플리케이션 제어기에 의해 상기 원격 클라이언트 애플리케이션에 콜백(callback)을 등록하는 단계를 더 포함하는
    방법.
  14. 제12항에 있어서,
    상기 사용자가 상기 원격 클라이언트 애플리케이션과 연관된 동작을 개시할 수 있게 하는 동작 버튼의 세트를 상기 사용자에게 제공하는 단계를 더 포함하는
    방법.
  15. 제14항에 있어서,
    상기 사용자가 상기 동작 버튼 중 하나를 작동시킨 경우에 동작 그룹 중 하나의 동작을 개시하는 단계를 더 포함하는
    방법.
  16. 제15항에 있어서,
    상기 동작 그룹 중 하나의 동작을 개시하는 단계는 상기 원격 클라이언트 애플리케이션과 연관된 HTML 페이지 상에 자바스크립트를 호출하는 것을 더 포함하는
    방법.
  17. 제15항에 있어서,
    상기 동작 그룹 중 하나의 동작을 개시하는 단계는 네이티브 동작을 호출하는 것을 더 포함하고, 상기 네이티브 동작은 상기 모바일 장치의 네이티브 SDK로 구현되는
    방법.
  18. 모바일 장치의 사용자에게 상기 사용자가 원격 클라이언트 애플리케이션과 연관된 기능에 액세스할 수 있게 하는 사용자 인터페이스(UI)를 제공하는 방법으로서,
    상기 원격 클라이언트 애플리케이션과 연관된 동작을 작동시키기 위한 버튼을 포함하는 UI를 상기 사용자에게 제공하는 단계와,
    사용자 선택 시에, 상기 원격 클라이언트 애플리케이션과 연관된 상기 동작 중 하나를 호출하는 단계 - 상기 동작은, 상기 원격 클라이언트 애플리케이션에 의해 실행된 원격 동작 및 상기 모바일 장치에 의해 실행된 네이티브 동작을 포함하는 그룹 중 하나의 동작을 포함함 - 와,
    상기 사용자 선택 시에, 상기 동작이 적어도 하나의 네이티브 동작을 포함하는지를 검사하는 단계와,
    상기 적어도 하나의 네이티브 동작이 지원되는지를 검사하는 단계와,
    상기 적어도 하나의 네이티브 동작이 지원되지 않으면 상기 적어도 하나의 네이티브 동작을 디스에이블하는 단계와,
    상기 원격 클라이언트 애플리케이션에 대한 호출을 하는 단계를 포함하는
    방법.
  19. 제18항에 있어서,
    상기 동작 중 하나를 호출하는 단계는
    상기 원격 클라이언트 애플리케이션에게 허용되는 동작을 결정하는 단계와,
    각각의 동작의 파라미터를 결정하는 단계와,
    상기 사용자에 의해 호출된 상기 동작의 파라미터에 대한 통신을 상기 UI로 리턴하는 단계
    를 더 포함하는 방법.
  20. 제19항에 있어서,
    상기 통신을 리턴하는 단계는
    상기 사용자에 의해 호출된 상기 동작이, 상기 원격 클라이언트 애플리케이션에 의해 제공된 자바스크립트 동작 및 상기 모바일 장치에 의해 제공된 네이티브 동작을 포함하는 그룹 중 하나의 동작인지의 여부에 대한 표시를 리턴하는 단계를 더 포함하는
    방법.
KR1020157019103A 2013-01-15 2014-01-14 하이브리드 모바일 애플리케이션을 구축하고 사용하는 시스템 및 방법 KR102159416B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/742,130 US9420031B2 (en) 2013-01-15 2013-01-15 Systems and methods for building and using hybrid mobile applications
US13/742,130 2013-01-15
PCT/US2014/011367 WO2014113339A1 (en) 2013-01-15 2014-01-14 Systems and methods for building and using hybrid mobile applications

Publications (2)

Publication Number Publication Date
KR20150108364A KR20150108364A (ko) 2015-09-25
KR102159416B1 true KR102159416B1 (ko) 2020-09-23

Family

ID=50073443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157019103A KR102159416B1 (ko) 2013-01-15 2014-01-14 하이브리드 모바일 애플리케이션을 구축하고 사용하는 시스템 및 방법

Country Status (11)

Country Link
US (1) US9420031B2 (ko)
EP (1) EP2946574B1 (ko)
JP (1) JP2016507101A (ko)
KR (1) KR102159416B1 (ko)
CN (1) CN104995927B (ko)
AU (1) AU2014207730B2 (ko)
BR (1) BR112015016508A2 (ko)
CA (1) CA2896612A1 (ko)
MX (1) MX352443B (ko)
RU (1) RU2015128627A (ko)
WO (1) WO2014113339A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9444912B1 (en) * 2013-05-21 2016-09-13 Trend Micro Incorporated Virtual mobile infrastructure for mobile devices
US9256402B2 (en) 2013-09-13 2016-02-09 International Business Machines Corporation End user programming for a mobile device
US9503788B2 (en) 2013-09-13 2016-11-22 International Business Machines Corporation End user programming for a television multimedia device
CN105426448B (zh) * 2015-11-06 2019-04-16 广州华多网络科技有限公司 界面显示方法、装置及***
US9952835B2 (en) * 2016-02-23 2018-04-24 Sap Se Generation of hybrid enterprise mobile applications in cloud environment
US9804834B1 (en) * 2016-04-19 2017-10-31 Dropbox, Inc. Automatically updating a hybrid application
US10607002B2 (en) 2016-08-30 2020-03-31 Microsoft Technology Licensing, Llc Isolating an application running inside a native container application
CN107122281A (zh) * 2017-03-17 2017-09-01 百度在线网络技术(北京)有限公司 移动应用加载监控方法和***
CN108920246B (zh) * 2017-08-23 2021-09-21 北京五八信息技术有限公司 表单草稿组件共享方法及装置、终端设备及可读存储介质
US10296309B1 (en) * 2018-01-25 2019-05-21 Walmart Apollo, Llc Systems and methods for automatic API generation for bi-directional communication between native and web-based components of a mobile application
US10379846B1 (en) * 2018-01-25 2019-08-13 Walmart Apollo, Llc Systems and methods for real time version control for integrating updated web-based components with a native application
US10296298B1 (en) * 2018-01-25 2019-05-21 Walmart Apollo, Llc Systems and methods for cross platform information exchange mechanism for integrating web-based components with a native application
CN108959495B (zh) * 2018-06-25 2019-12-06 百度在线网络技术(北京)有限公司 H5网页的页面显示方法、装置、设备和计算机存储介质
KR102176742B1 (ko) * 2018-11-21 2020-11-09 숭실대학교산학협력단 안드로이드 앱의 호출 관계도 생성 방법, 이를 수행하기 위한 기록매체 및 장치
CN110300165B (zh) * 2019-06-26 2021-11-12 北京字节跳动网络技术有限公司 一种功能程序的调用方法、装置、设备及存储介质
CN113626105B (zh) * 2021-08-18 2023-10-27 赞同科技股份有限公司 移动端混合模式的sdk***与移动设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473800B1 (en) * 1998-07-15 2002-10-29 Microsoft Corporation Declarative permission requests in a computer system
US7747781B2 (en) * 2001-04-20 2010-06-29 Palmsource Inc. Content access from a communications network using a handheld computer system and method
US7000221B2 (en) * 2002-07-31 2006-02-14 International Business Machines Corporation Script evaluator
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
JP2004318607A (ja) * 2003-04-17 2004-11-11 Sony Corp 情報処理装置、情報処理方法、プログラム、記憶媒体
US20060129972A1 (en) * 2004-11-30 2006-06-15 Tyburski John C Application developer and method for generating platform independent code
JP2008539470A (ja) * 2005-02-09 2008-11-13 ソフトウェアオンライン・エルエルシー オンラインディスカッションの円滑化
US7636888B2 (en) * 2005-03-15 2009-12-22 Microsoft Corporation Verifying compatibility between document features and server capabilities
US20080127037A1 (en) * 2006-10-16 2008-05-29 Prashanth Kadur System and method for detecting software on a computing device
CN100512426C (zh) * 2006-12-05 2009-07-08 华为技术有限公司 一种iptv应用***及准视频点播节目播放方法及***
US8150371B2 (en) * 2007-05-03 2012-04-03 Qualcomm Incorporated Interactive control of access to services and capabilities of a mobile device
US8635701B2 (en) * 2008-03-02 2014-01-21 Yahoo! Inc. Secure browser-based applications
US9106696B2 (en) * 2009-04-15 2015-08-11 Wyse Technology L.L.C. Method and apparatus for portability of a remote session
US8572603B2 (en) * 2009-09-04 2013-10-29 Adobe Systems Incorporated Initializing an application on an electronic device
US20120166643A1 (en) * 2010-12-27 2012-06-28 Customized Technology Services, Inc. Systems and methods for controlling and managing personal data communications
KR101842256B1 (ko) * 2011-02-01 2018-03-26 삼성전자주식회사 어플리케이션을 원격으로 실행하는 방법 및 장치
US8554190B2 (en) * 2011-02-28 2013-10-08 Unwired Nation, Inc. Mobile application system
US9154555B2 (en) * 2011-03-30 2015-10-06 Paypal, Inc. Device specific remote disabling of applications
US20120254722A1 (en) 2011-03-31 2012-10-04 Cloudera, Inc. Interactive user interface implementation and development environment therefor
US20120278185A1 (en) 2011-05-01 2012-11-01 Vinod Kumar Ramachandran Method to adapt ads rendered in a mobile device based on existence of other mobile applications
US20120317172A1 (en) * 2011-06-13 2012-12-13 International Business Machines Corporation Mobile web app infrastructure
US8924507B2 (en) * 2011-09-02 2014-12-30 Microsoft Corporation Cross-frame progressive spoiling support for reduced network bandwidth usage
US9716744B2 (en) * 2011-10-27 2017-07-25 Microsoft Technology Licensing, Llc Remote access from mobile devices
US8819698B2 (en) * 2012-04-02 2014-08-26 Hewlett-Packard Development Company, L. P. Cross-platform web-based native device feature access
US9715821B2 (en) * 2012-07-23 2017-07-25 Comcast Cable Communications, Llc System and method for managing device controls
US9397878B2 (en) * 2013-01-29 2016-07-19 Qualcomm Incorporated Cross-platform module that is shared by client applications for access to rich communications suite resources on a client device

Also Published As

Publication number Publication date
KR20150108364A (ko) 2015-09-25
MX2015009157A (es) 2016-03-09
AU2014207730A1 (en) 2015-07-09
RU2015128627A (ru) 2017-01-20
MX352443B (es) 2017-11-24
CA2896612A1 (en) 2014-07-24
WO2014113339A1 (en) 2014-07-24
AU2014207730B2 (en) 2017-03-02
CN104995927A (zh) 2015-10-21
JP2016507101A (ja) 2016-03-07
EP2946574B1 (en) 2017-08-09
CN104995927B (zh) 2018-10-30
US20140201328A1 (en) 2014-07-17
EP2946574A1 (en) 2015-11-25
BR112015016508A2 (pt) 2017-07-11
US9420031B2 (en) 2016-08-16

Similar Documents

Publication Publication Date Title
KR102159416B1 (ko) 하이브리드 모바일 애플리케이션을 구축하고 사용하는 시스템 및 방법
US11921996B2 (en) Information processing terminal and control method
EP3623942B1 (en) Message processing method and apparatus, storage medium, and computer device
US10091628B2 (en) Message based application state and card sharing methods for user devices
US8656265B1 (en) Low-latency transition into embedded web view
EP2649536B1 (en) Codeless sharing of spreadsheet objects
US10162806B1 (en) Unified web and application framework
US20150154156A1 (en) Document link previewing and permissioning while composing an email
US20130091197A1 (en) Mobile device as a local server
CN104995601B (zh) 切换到本机网页应用程序及从本机网页应用程序切换离开
US11210119B2 (en) Method and device for displaying interface, electronic equipment, server, and storage medium
US20160179767A1 (en) Architecture for an application with integrated dynamic content
US20150220239A1 (en) Global keyboard shortcuts management for web applications
US9875099B2 (en) Computer-implemented method and system for executing android apps natively on any environment
WO2015074011A1 (en) Enhanced event handler attachment
US7912924B1 (en) Adding functionality with respect to one or more web pages
KR20170016362A (ko) 컴파일 동안 표시 메타데이터를 브라우저 렌더링 가능 포맷으로 변환하는 기법
US20130081010A1 (en) Template and server content download using protocol handlers
US20190230188A1 (en) Hosted application as web widget toolkit
US20150193209A1 (en) Specifying compiled language code in line with markup language code
US20230267163A1 (en) Runtime completion of web component metadata
Salminen et al. Towards pervasive mashups in embedded devices: comparing procedural and declarative approach
CN117633382A (zh) 一种页面加载方法、装置、电子设备及计算机可读介质
KR101392773B1 (ko) 홈 어플리케이션을 실행하기 위한 방법, 단말기 및 컴퓨터 판독 가능한 기록 매체

Legal Events

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