KR102173840B1 - Method and device for excuting native features of a mobile device by using a broker - Google Patents
Method and device for excuting native features of a mobile device by using a broker Download PDFInfo
- Publication number
- KR102173840B1 KR102173840B1 KR1020190016136A KR20190016136A KR102173840B1 KR 102173840 B1 KR102173840 B1 KR 102173840B1 KR 1020190016136 A KR1020190016136 A KR 1020190016136A KR 20190016136 A KR20190016136 A KR 20190016136A KR 102173840 B1 KR102173840 B1 KR 102173840B1
- Authority
- KR
- South Korea
- Prior art keywords
- native
- word
- command data
- component
- broker
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
Abstract
브로커를 이용한 이동 장치의 네이티브 기능을 실행시키기 위한 방법이 개시된다. 상기 브로커를 이용한 이동 장치의 네이티브 기능을 실행시키기 위한 방법은 네이티브 기능의 실행 요구에 응답하여 웹 어플리케이션은 특수문자와 단어만으로 구성된 명령 데이터를 포함하는 메시지를 브로커로 전송하는 단계, 네이티브 컴포넌트(native component)는 상기 브로커로부터 상기 명령 데이터를 포함하는 상기 메시지를 수신하는 단계, 및 상기 네이티브 컴포넌트는 상기 네이티브 기능을 실행하기 위해 상기 수신된 메시지에 포함된 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행하는 단계를 포함하며, 상기 명령 데이터를 해석하는 동작은 상기 특수문자 사이의 상기 단어를 추출하는 추출 동작을 실행하는 단계, 및 상기 추출된 단어의 일부를 이용하여 개발자가 작성된 단어의 의도를 추론하는 추론 동작을 실행하는 단계를 포함한다. A method for executing a native function of a mobile device using a broker is disclosed. The method for executing a native function of a mobile device using the broker is the step of transmitting a message including command data consisting of only special characters and words to the broker in response to a request for executing the native function, a native component ) Receiving the message including the command data from the broker, and the native component interprets the command data included in the received message to execute the native function, and according to the interpreted command data And executing a native code, and the operation of interpreting the command data includes executing an extraction operation of extracting the word between the special characters, and a word written by the developer using a part of the extracted word. And performing a speculative operation that infers the intention.
Description
본 발명의 개념에 따른 실시 예는 브로커를 이용한 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치에 관한 것으로, 특히, 하이브리드 모바일 어플리케이션(hybrid mobile application)에서 브로커를 이용하여 네이티브 기능을 쉽게 구현하기 위한 방법 및 장치에 관한 것이다. An embodiment according to the concept of the present invention relates to a method and apparatus for executing a native function of a mobile device using a broker, and in particular, for easily implementing a native function using a broker in a hybrid mobile application. It relates to a method and apparatus.
모바일 앱(mobile app)은 스마트 폰(smart phone) 또는 테블릿(tablet) PC와 같은 이동 장치에서 이용되는 컴퓨터 프로그램을 의미한다. 모바일 앱은 네이티브 어플리케이션(native application), 웹 어플리케이션(web application), 및 하이브리드 모바일 어플리케이션(hybrid mobile application)으로 구분될 수 있다. 네이티브 어플리케이션은 일반적으로 컴퓨터 코드로 개발되며, 이동 장치에 구현된 프로세서에 의해 바로 실행된다. 웹 어플리케이션은 인터넷과 같은 네트워크를 웹 브라우저(web browser)를 통해 접근하는 어플리케이션이다. 웹 어플리케이션은 앱(app)처럼 보이는 모바일에 최적화된 웹페이지이다. 하이브리드 모바일 어플리케이션은 HTML5, CSS, 및 JavaScript과 같은 웹 기술들을 이용하여 작성된 어플리케이션이다. The mobile app refers to a computer program used in a mobile device such as a smart phone or a tablet PC. Mobile apps may be classified into native applications, web applications, and hybrid mobile applications. Native applications are generally developed in computer code and executed directly by a processor embodied in a mobile device. A web application is an application that accesses a network such as the Internet through a web browser. A web application is a mobile-optimized web page that looks like an app. Hybrid mobile applications are applications written using web technologies such as HTML5, CSS, and JavaScript.
웹 어플리케이션과 하이브리드 모바일 어플리케이션은 JavaScript와 HTML과 같은 웹 기반 언어들을 이용하여 개발된다. JavaScript와 HTML과 같은 웹 기반 언어들은 고차원 언어들(high level languages)이므로, 네이티브 어플리케이션과는 달리, 상기 고차원 언어들은 이동 장치의 하드웨어를 직접적으로 제어할 수 없다. 즉, 웹 어플리케이션과 하이브리드 모바일 어플리케이션은 카메라, 가속도계, 또는 GPS와 같은 이동장치의 특정 기능을 직접적으로 활용할 수 없다. Web applications and hybrid mobile applications are developed using web-based languages such as JavaScript and HTML. Web-based languages such as JavaScript and HTML are high level languages, and unlike native applications, the high-level languages cannot directly control the hardware of a mobile device. That is, web applications and hybrid mobile applications cannot directly utilize specific functions of mobile devices such as cameras, accelerometers, or GPS.
웹 어플리케이션 프로그래밍 환경과 네이티브 플랫폼 프로그래밍 환경 사이의 갭(gap)을 메우기 위해 개발자들에게 PhoneGap,Native Script,React Native과 같은 개발 툴(tool)이 제공되었다. 하지만 상기 개발 툴을 이용하기 위해 개발자들은 개발 툴의 전문적인 기능을 익혀야 했으며, 개발 툴의 전문적인 기능을 익히는데 많은 시간을 소비하여야했다. 또한, 상기 개발 툴을 네이티브 코드로 변환하는 과정에서 인터페이스가 변형되는 문제가 발생하였거나, 디자인이 자유롭게 적용될 수 없는 문제점이 있었다. 또한, 상기 개발 툴을 이용하여 이동 장치의 특정 기능을 활용하는 것은 직접적으로 네이티브 코드를 이용하여 이동 장치의 특정 기능을 활용하는 것보다 더 느리다는 단점이 있다. Development tools such as PhoneGap, Native Script, and React Native were provided to developers to fill the gap between the web application programming environment and the native platform programming environment. However, in order to use the development tool, developers had to learn the specialized functions of the development tool, and spent a lot of time learning the specialized functions of the development tool. In addition, in the process of converting the development tool into a native code, there is a problem in that an interface is deformed or a design cannot be freely applied. In addition, utilizing the specific function of the mobile device using the development tool is slower than using a specific function of the mobile device directly using native code.
또한, 종래에는 웹뷰내의 자바스크립트 API에서 네이티브 기능을 호출하였다. 종래와 같이 네이티브 기능을 호출하기 위해 개발자는 자바스크립트 API를 작성하여야만한다. 하지만, 전문적인 개발자가 아닌 디자이너가 하이브리드 모바일 어플리케이션을 개발할 경우, 디자이너는 상기 자바스크립트 API를 작성하기 위해 많은 시간을 소비하여 자바스크립트 API를 배워야 한다. 또한, 디자이너는 상기 자바스크립트 API를 기억하고 있어야하며, 복잡한 자바스크립트 API를 정확하게 사용하는 것은 쉽지 않다는 문제점이 있다. Also, in the related art, native functions were called from the JavaScript API in the web view. As in the prior art, in order to call a native function, a developer must write a JavaScript API. However, when a designer who is not a professional developer develops a hybrid mobile application, the designer must learn the JavaScript API by spending a lot of time to write the JavaScript API. In addition, there is a problem that the designer must remember the JavaScript API, and it is not easy to accurately use the complex JavaScript API.
본 발명이 이루고자 하는 기술적인 과제는 브로커를 이용하여 하이브리드 모바일 어플리케이션에서 네이티브 기능을 쉽게 구현하기 위한 방법 및 장치를 제공하는 것이다.The technical problem to be achieved by the present invention is to provide a method and apparatus for easily implementing native functions in a hybrid mobile application using a broker.
본 발명의 실시 예에 따른 브로커를 이용한 이동 장치의 네이티브 기능을 실행시키기 위한 방법은 네이티브 기능의 실행 요구에 응답하여 웹 어플리케이션은 특수문자와 단어만으로 구성된 명령 데이터를 포함하는 메시지를 브로커로 전송하는 단계, 네이티브 컴포넌트(native component)는 상기 브로커로부터 상기 명령 데이터를 포함하는 상기 메시지를 수신하는 단계, 및 상기 네이티브 컴포넌트는 상기 네이티브 기능을 실행하기 위해 상기 수신된 메시지에 포함된 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행하는 단계를 포함한다.In the method for executing a native function of a mobile device using a broker according to an embodiment of the present invention, in response to a request for executing the native function, the web application transmits a message including command data composed of only special characters and words to the broker. , A native component receiving the message including the command data from the broker, and the native component interpreting the command data included in the received message to execute the native function, And executing the native code according to the interpreted instruction data.
본 발명의 실시 예에 따른 이동 장치는 네이티브 기능의 실행 요구에 응답하여 특수문자와 단어만으로 구성된 명령 데이터를 포함하는 메시지를 브로커로 전송하는 웹 어플리케이션, 및 상기 브로커로부터 상기 명령 데이터를 포함하는 상기 메시지를 수신하는 네이티브 컴포넌트를 포함하며, 상기 네이티브 컴포넌트는 상기 네이티브 기능을 실행하기 위해 상기 수신된 메시지에 포함된 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행한다. The mobile device according to an embodiment of the present invention includes a web application that transmits a message including command data composed of only special characters and words to a broker in response to a request for execution of a native function, and the message including the command data from the broker. And a native component receiving, wherein the native component interprets the command data included in the received message to execute the native function, and executes a native code according to the interpreted command data.
본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치는 네이티브 기능을 실행시키기 위해 특수문자와 단어만 또는, 특수문자, 이미지, 및 단어만으로 구성된 명령 데이터를 포함하는 메시지를 브로커로 전송함으로써, 개발자는 개발 툴의 전문적인 기능을 익히는데 시간을 소비할 필요 없이 기존의 웹페이지 개발 언어를 그대로 사용하여 하이브리드 모바일 어플리케이션을 개발할 수 있는 효과가 있다.A method and apparatus for executing a native function of a mobile device according to an embodiment of the present invention provides a broker for a message including command data consisting of only special characters and words or only special characters, images, and words in order to execute the native function. By transferring to, the developer can develop a hybrid mobile application by using the existing web page development language as it is, without spending time learning the specialized functions of the development tool.
또한, 본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치는 네이티브 기능을 실행시키기 위해 특수문자와 단어만 또는, 특수문자, 이미지, 및 단어만으로 구성된 명령 데이터를 포함하는 메시지를 브로커로 전송함으로써, 전문 개발자가 아닌 사람이라도 쉽게 하이브리드 모바일 어플리케이션을 개발할 수 있는 효과가 있다. In addition, a method and apparatus for executing a native function of a mobile device according to an embodiment of the present invention is a message including command data consisting of only special characters and words or only special characters, images, and words in order to execute the native function. By transmitting the data to the broker, even a person who is not a professional developer can easily develop a hybrid mobile application.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 웹뷰에 도시되는 인터페이스의 실시 예들을 나타낸다.
도 3은 본 발명의 실시 예에 따른 이동 장치의 카메라 기능을 실행시키기 위한 시스템의 블록도를 나타낸다.
도 4는 본 발명의 실시 예에 따른 이동 장치의 GPS 기능을 실행시키기 위한 시스템의 블록도를 나타낸다.
도 5는 본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법을 설명하기 위한 흐름도를 나타낸다.
도 6은 본 발명의 다른 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법을 설명하기 위한 흐름도를 나타낸다. A detailed description of each drawing is provided in order to more fully understand the drawings cited in the detailed description of the present invention.
1 is a block diagram of a system for executing a native function of a mobile device according to an embodiment of the present invention.
2 shows embodiments of an interface shown in the web view shown in FIG. 1.
3 is a block diagram of a system for executing a camera function of a mobile device according to an embodiment of the present invention.
4 is a block diagram of a system for executing a GPS function of a mobile device according to an embodiment of the present invention.
5 is a flowchart illustrating a method for executing a native function of a mobile device according to an embodiment of the present invention.
6 is a flowchart illustrating a method for executing a native function of a mobile device according to another embodiment of the present invention.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present invention disclosed in the present specification are exemplified only for the purpose of describing the embodiments according to the concept of the present invention, and the embodiments according to the concept of the present invention are It may be implemented in various forms and is not limited to the embodiments described herein.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Since the embodiments according to the concept of the present invention can apply various changes and have various forms, the embodiments will be illustrated in the drawings and described in detail in the present specification. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosed forms, and includes all changes, equivalents, or substitutes included in the spirit and scope of the present invention.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various elements, but the elements should not be limited by the terms. The terms are only for the purpose of distinguishing one component from other components, for example, without departing from the scope of the rights according to the concept of the present invention, the first component may be referred to as the second component, and similarly The second component may also be referred to as a first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle. Other expressions describing the relationship between components, such as "between" and "just between" or "adjacent to" and "directly adjacent to" should be interpreted as well.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present specification are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of a set feature, number, step, action, component, part, or combination thereof, but one or more other features or numbers It is to be understood that the possibility of addition or presence of, steps, actions, components, parts, or combinations thereof is not preliminarily excluded.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this specification. Does not.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.Hereinafter, the present invention will be described in detail by describing a preferred embodiment of the present invention with reference to the accompanying drawings.
도 1은 본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 시스템의 블록도를 나타낸다. 1 is a block diagram of a system for executing a native function of a mobile device according to an embodiment of the present invention.
도 1을 참조하면, 시스템(100)은 이동 장치(10), 웹 서버(30), 및 브로커(40)를 포함한다. 이동 장치(10)는 스마트 폰, 테블릿 PC, 또는 이동 가능한 전자 제품을 의미한다. 이동 장치(10)는 카메라(11), GPS(Global Positioning System; 13), 및 NFC(Near Field Communication; 15)을 포함한다. 본 발명에서는 이동 장치(10)는 카메라(11), GPS(13), 및 NFC(15)를 포함한다 하였으나, 반드시 이에 한정되는 것은 아니다. 실시 예에 따라 이동 장치(10)는 다른 외부 하드웨어를 포함할 수 있다. Referring to FIG. 1, the
카메라(11)는 이동 장치(10)에 구현된 것으로, 사진을 찍을 수 있는 기능을 구현할 수 있는 하드웨어를 포함한 구성요소를 의미한다. GPS(13)는 이동 장치(10)에 구현된 것으로, 이동 장치(10)의 현재 위치를 알려줄 수 있는 기능을 구현할 수 있는 하드웨어를 포함한 구성요소를 의미한다. NFC(15)는 근거리 무선 통신을 수행할 수 있는 하드웨어를 포함한 구성요소를 의미한다. The
이동 장치(10)에 설치된 모바일 앱은 하이브리드 모바일 어플리케이션으로 구현된 것으로 가정한다. 본 명세서에서 웹 어플리케이션(web application; 21)은 모바일 앱을 의미한다. 이에 앞으로 모바일 앱이라는 용어 대신에 웹 어플리케이션이라는 용어를 사용한다. It is assumed that the mobile app installed on the
이동 장치(10)에 설치된 웹 어플리케이션(21)이 하이브리드 모바일 어플리케이션으로 구현될 때, 이동 장치(10)는 네이티브 컴포넌트(Native Component; 17), 및 웹뷰(Webview, 19)을 포함한다. When the
네이티브 컴포넌트(17)는 이동 장치(10)의 하드웨어의 기능을 실행하기 위한 네이티브 코드를 포함한다. 실시 예에 따라 네이티브 컴포넌트(17)는 다르게 호칭(예컨대, 네이티브)될 수 있다. The
본 명세서에서 네이티브 기능이란 이동 장치(10)의 하드웨어(예컨대, 카메라(11), GPS(13), 또는 NFC(15))의 기능(예컨대, 카메라(11)을 이용하여 사진을 찍는 동작, GPS(13)를 이용하여 현재의 위치를 파악하는 동작, NFC(15)를 이용하여 근거리 무선 통신을 수행하는 동작)을 의미한다. 네이티브 컴포넌트(17)의 자세한 동작에 대해서는 뒤에서 자세히 설명될 것이다. In this specification, the native function refers to a function of the hardware (eg,
웹뷰(19)는 하이브리드 모바일 어플리케이션으로 구현된 웹 어플리케이션(21)의 안에 구현된 브라우저(browser)를 의미한다. The
웹 어플리케이션(21)은 웹 기술들(예컨대, HTML, JavaScript, CSS 등)이용하여 생성될 수 있다. The
웹 어플리케이션(21)은 네이티브 기능의 실행 요구에 응답하여 특수문자와 단어만으로 구성된 명령 데이터를 포함하는 메시지를 브로커(40)로 전송할 수 있다. 상기 네이티브 기능의 실행 요구란 이동 장치(10)의 이용자가 이동 장치(10)에 구현된 하드웨어(예컨대, 카메라(11), GPS(13), 또는 NFC(15))의 기능을 실행하기 위해 웹뷰(19)에서 특정 단어, 특정 아이콘 또는 이들의 조합을 클릭하는 행위를 의미한다. 예컨대, 상기 이용자는 이동 장치(10)의 카메라(11)을 이용하여 사진을 찍기 위해 웹뷰(19)에 구현된 단어 "카메라"를 클릭하여 네이티브 기능의 실행 요구 동작을 수행할 수 있다. The
웹 어플리케이션(21)은 직접적으로 이동 장치(10)의 하드웨어가 네이티브 기능을 수행하도록 할 수 없으므로, 네이티브 기능을 수행하라라는 명령 데이터를 포함하는 메시지를 브로커(40)로 전송한다. 상기 명령 데이터는 특수문자와 단어만으로 구현될 수 있다. 특수문자는 "!, @, #, $, %, ^, &, *, 또는 {{, }}" 일 수 있다. 단어는 개발자가 임의로 자유롭게 정할 수 있다. 예컨대, 네이티브 기능이 카메라(11)를 온(On)시키는 동작일 때, 상기 명령 데이터는 "{{카메라}}"으로 구현될 수 있다. 또는, 상기 명령 데이터는 "{{사진 찍기}}", 또는 "{{Camera}}"일 수 있다. 즉, 상기 명령 데이터에서 단어는 개발자에 의해 임의로 작성될 수 있어, 개발자는 자바스크립트 API를 배우지 않고도 쉽게 네이티브 기능을 구현할 수 있다.Since the
본 명세서에서는 명령 데이터라고 정의하였으나, 실시 예에 따라 명령 데이터는 다른 용어로 호칭될 수 있다. 웹뷰(19)는 상기 네이티브 기능을 직접적으로 실행할 수 없다.Although defined herein as command data, command data may be referred to as other terms according to embodiments. The
브로커(40)는 발행(publish)-구독(subscribe) 기반의 메시지 프로토콜(protocol)인 MQTT(Message Queuing Telemetry Transport)에 이용되며, 이동 장치(10), 웹 서버(30)와 구별되는 별도의 장치이다. The
네이티브 컴포넌트(17)는 브로커(40)로부터 상기 명령 데이터를 포함하는 상기 메시지를 수신한다. 네이티브 컴포넌트(17)는 상기 네이티브 기능을 실행하기 위해 상기 수신된 메시지에 포함된 상기 명령 데이터를 해석한다. 즉, 네이티브 컴포넌트(17)는 상기 명령 데이터가 무슨 동작을 실행하라는 명령인지 해석한다. 구체적으로, 네이티브 컴포넌트(17)는 특수문자 사이의 단어를 추출하는 추출 동작을 실행하고, 추출된 단어를 데이터베이스(미도시)에 저장된 단어와 관련이 있는지 판단하는 판단 동작을 실행한다. 상기 명령 데이터를 해석하는 동작은 상기 추출 동작과 상기 판단 동작을 포함한다. 네이티브 컴포넌트(17)는 상기 추출된 단어와 관련있는 상기 데이터베이스의 단어와 대응되는 네이티브 코드를 실행한다. 예컨대, 상기 명령 데이터가 "{{사진 찍기}}"일 때, 네이티브 컴포넌트(17)는 특수문자 사이의 "사진 찍기"를 추출하고, 추출된 "사진 찍기"를 상기 데이터베이스에 저장된 단어인 "Camera On"와 관련이 있는지 판단하며, 상기 추출된 단어인 "사진 찍기"와 관련있는 상기 데이터베이스의 단어인 "Camera On"와 대응되는 네이티브 코드를 실행한다. 상기 데이터베이스는 네이티브 코드들과, 상기 네이티브 코드들과 대응되는 단어들을 테이블 형태로 저장한다. 또한, 상기 데이터베이스에 저장된 상기 네이티브 코드들과 대응되는 단어들은 네이티브 컴포넌트(17)에서 추출된 단어와 관련이 있다. 관련이 있다는 것은 추출된 단어와 상기 데이터베이스에 저장된 단어가 서로 대응됨을 의미한다. 예컨대, 상기 데이터베이스에 저장된 상기 네이티브 코드들과 대응되는 단어가 "Camera On"일 때, "Camera On"은 네이티브 컴포넌트(17)에서 추출될 수 있는 단어인 "카메라", "사진 찍기", 또는 "사진 촬영" 등과 사전에 약속에 의해 관련되어 있다, 또는 서로 대응된다고 가정한다. 즉, 네이티브 컴포넌트(17)에서 추출될 수 있는 단어들, 네이티브 코드들, 및 상기 네이티브 코드들과 대응되는 단어들은 테이블 형태로 저장된다. The
네이티브 컴포넌트(17)에서 추출될 수 있는 단어인 "카메라", "사진 찍기", 또는 "사진 촬영"은 개발자에 의해 임의로 작성될 수 있는 단어이다. Words that can be extracted from the
실시 예에 따라 네이티브 컴포넌트(17)는 특수문자 사이의 단어를 추출하는 추출 동작을 실행하고, 추출된 단어의 일부를 이용하여 개발자가 작성된 단어의 의도를 추론하는 추론 동작을 실행할 수 있다. 상기 명령 데이터를 해석하는 동작은 상기 추출 동작과 상기 추론 동작을 포함한다. 예컨대, 상기 명령 데이터가 "{{풍경 촬영}}"일 때, 네이티브 컴포넌트(17)는 특수문자 사이의 “풍경 촬영”라는 단어를 추출하고, 추출된 단어를 이용하여 상기 데이터베이스에 저장된 단어인 "Camera On"와 관련 있는 것으로 “풍경 촬영”라는 단어의 의도를 추론할 수 있다. 상기 데이터베이스에 저장된 단어(예컨대,“Camera On")와 개발자에 의해 작성될 단어(예컨대,“풍경 촬영")를 모두 미리 약속에 의해 연관시킬 수 없다. 즉, 개발자에 의해 작성될 단어 모두는 상기 데이터베이스에 저장된 단어와 테이블 형태로 저장될 수 없다. 개발자에 의해 작성될 단어는 다양할 수 있기 때문이다. 이 때, 개발자에 의해 작성된 단어는 상기 데이터베이스에 저장된 단어와 관련이 있는지 판단하기 어렵다. 추출된 단어“풍경 촬영"과 연관된 데이터베이스에 저장된 단어는 없지만, 추출된 단어“풍경 촬영"에서“촬영"이라는 단어의 일부를 이용하여 단어의 의도를 추론할 수 있다. 상기 데이터베이스는 네이티브 코드들과, 상기 네이티브 코드들과 대응되는 단어들을 테이블 형태로 저장한다. 또한, 네이티브 컴포넌트(17)에서 추출된 단어의 일부는 상기 데이터베이스에 저장된 상기 네이티브 코드들과 대응되는 단어와 관련이 있다. 즉, 네이티브 컴포넌트(17)에서 추출된 단어의 일부는 상기 데이터베이스에 저장된 상기 네이티브 코드들과 대응되는 단어와 서로 대응된다. According to an embodiment, the
추론이라함은 "풍경 촬영"이라는 단어에서 추출된 단어인 "촬영"이라는 단어는 네이티브 코드와 대응되는 상기 데이터베이스에 저장된 단어인 "Camera On"과 관련이 있는 것(또는 서로 대응되는 것)으로 판단하는 것을 의미한다. "Camera On"과 관련 있는 것으로 단어의 의도를 추론한 후, 네이티브 컴포넌트(17)는 "Camera On"과 대응되는 네이티브 코드를 실행한다. 상기 네이티브 코드를 실행하면 카메라(11)를 키는 네이티브 기능이 실행된다. Inference means that the word "shooting", which is a word extracted from the word "landscape shooting", is determined to be related (or correspond to each other) with the word "Camera On" stored in the database corresponding to the native code. Means to do. After inferring the intention of the word to be related to “Camera On”, the
또 다른 실시 예에 따라 네이티브 컴포넌트(17)는 특수문자 사이의 단어를 추출하는 추출 동작을 실행하고, 웹뷰(19)에 표시된 문구들을 분석하여 개발자가 작성된 단어의 의도를 추론하는 추론 동작을 실행할 수 있다. 추론이라함은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 관련이 있는 것으로 판단하는 것을 의미한다. 즉, 상기 추론 동작은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 서로 대응되는지 판단하는 것을 의미한다.According to another embodiment, the
예컨대, 상기 명령 데이터가“{{사진}}"일 때, 네이티브 컴포넌트(17)는 특수문자 사이의“사진”라는 단어를 추출한다. 웹뷰(19)에 표시되는 문구가“카메라로 사진을 찍어 사진을 이쁘게 꾸며보세요”라는 문구가 있을 때, 네이티브 컴포넌트(17)는 추출된 단어“사진"에 대해 상기 데이터베이스에 저장된 단어인 "Camera On"와 관련 있는 것으로“사진”라는 단어의 의도를 추론할 수 있다. 즉, 웹뷰(19)에 특정 단어(예컨대, 카메라)가 일정 단어 이상 검색되는 경우, 네이티브 컴포넌트(17)는 추출된 단어“사진”에 대해 상기 데이터베이스에 저장된 단어인 "Camera On"와 관련 있는 것(또는 서로 대응되는 것)으로“사진”라는 단어의 의도를 추론할 수 있다. For example, when the command data is “{{photo}}”, the
반면, 웹뷰(19)에 표시되는 문구가“사진첩에 저장된 사진을 이용하여 사진을 이쁘게 꾸며보세요”라는 문구가 있을 때, 웹뷰(19)에 특정 단어(예컨대, 사진첩, 또는 갤러리)가 일정 단어 이상 검색되는지를 카운트한다. 상기 카운트된 특정 단어가 일정 단어 이상 검색되는 경우, 네이티브 컴포넌트(17)는 추출된 단어“사진"에 대해 상기 데이터베이스에 저장된 단어인 "Pickup Photo"와 관련 있는 것(또는 서로 대응되는 것)으로“사진”라는 단어의 의도를 추론할 수 있다.“Pickup Photo"와 관련 있는 것(또는 서로 대응되는 것)으로 단어의 의도를 추론한 후, 네이티브 컴포넌트(17)는 "Pickup Photo"과 대응되는 네이티브 코드를 실행한다. 상기 네이티브 코드를 실행하면 이동 장치(10)의 저장공간(미도시)에 저장된 이미지를 불러오는 네이티브 기능이 실행된다. On the other hand, when the phrase displayed on the
실시 예에 따라, 웹뷰(19)에 특정 단어(예컨대, 카메라)가 일정 단어 이하로 검색되는 경우, 네이티브 컴포넌트(17)는 추출된 단어“사진”에 대해 상기 데이터베이스에 저장된 단어인 "Pickup Photo"와 관련 있는 것(또는 서로 대응되는 것)으로 “사진”라는 단어의 의도를 추론할 수 있다.According to an embodiment, when a specific word (eg, a camera) is searched for less than a certain word in the
또 다른 실시 예에 따라 네이티브 컴포넌트(17)는 네이티브 컴포넌트(17)는 특수문자 사이의 단어를 추출하는 추출 동작을 실행하고, 추출된 단어 순서를 분석하여 개발자가 작성된 단어의 의도를 추론하는 추론 동작을 실행할 수 있다. 추론이라함은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 관련이 있는 것으로 판단하는 것을 의미한다. 즉, 상기 추론 동작은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 서로 대응지 판단하는 것을 의미한다.According to another embodiment, the
예컨대, 개발자가 작성한 단어가 "사진 찍기, 또는 찍은 사진"일 때, "사진"이라는 단어를 기준으로, 앞에 단어가 있는지, 뒤에 단어가 있는지로 추출된 단어의 의도를 추론할 수 있다. "사진"이라는 단어 앞에 다른 단어가 존재할 때, 네이티브 컴포넌트(17)는 상기 데이터베이스에 저장된 단어인 "Pickup Photo"와 관련 있는 것(또는 서로 대응되는 것)으로 단어의 의도를 추론할 수 있다. "사진"이라는 단어 뒤에 다른 단어가 존재할 때, 네이티브 컴포넌트(17)는 "Camera On"와 관련 있는 것(또는 서로 대응되는 것)으로“사진”라는 단어의 의도를 추론할 수 있다. "Camera On"와 관련 있는 것(또는 서로 대응되는 것)으로 단어의 의도를 추론한 후, 네이티브 컴포넌트(17)는 "Camera On"과 대응되는 네이티브 코드를 실행한다.For example, when the word written by the developer is "taking a picture or a picture taken", the intention of the extracted word may be inferred based on the word "photo" based on whether there is a word in front or a word in the back. When another word exists in front of the word “photo”, the
실시 예에 따라 상기 명령 데이터는 특수문자, 이미지, 및 단어만으로 구현될 수 있다. 예컨대, 상기 명령 데이터는 "{{ <img src='/native/camera/image.a.jpeg'> 사진 찍기}}"일 수 있다. According to an embodiment, the command data may be implemented only with special characters, images, and words. For example, the command data may be "{{ <img src='/native/camera/image.a.jpeg'> take a picture}}".
도 2는 도 1에 도시된 웹뷰에 도시되는 인터페이스의 실시 예들을 나타낸다. 2 shows embodiments of an interface shown in the web view shown in FIG. 1.
도 1과 도 2를 참조하면, 웹뷰(19)에는 네이티브 기능을 실행하기 위해 도 2에서와 같이 다양하게 단어와 이미지(또는 아이콘)가 사용될 수 있다. 즉, 웹뷰(19)에 "사진"이라는 같은 단어가 사용되더라도 사용된 이미지에 따라 카메라를 온(On)시키라는 의도인지, 이동 장치(10)에 저장된 사진을 불러오라는 의도인지 달라진다. 상기 명령 데이터가 특수문자, 이미지, 및 단어만으로 구현될 때, 네이티브 컴포넌트(17)는 특수문자 사이의 단어와 이미지를 추출하는 추출 동작을 실행하고, 상기 추출된 이미지를 읽는 리드 동작, 및 상기 추출된 단어와 상기 읽은 이미지를 분석하여 단어의 의도를 추론하는 추론 동작을 실행할 수 있다. 상기 명령 데이터를 해석하는 동작은 상기 추출 동작, 상기 리드 동작, 및 상기 추론 동작을 포함한다. 추론이라함은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 관련이 있는 것으로 판단하는 것을 의미한다. 즉, 상기 추론 동작은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 서로 대응지 판단하는 것을 의미한다.Referring to FIGS. 1 and 2, various words and images (or icons) may be used in the
예컨대, 상기 명령 데이터가 "{{<img src='/native/camera/image.a.jpeg'> 사진}}"일 때, 네이티브 컴포넌트(17)는 특수문자 사이의 단어("사진")와 이미지(<img src='/native/camera/image.a.jpeg'>")를 추출하는 추출 동작을 실행한다. 네이티브 컴포넌트(17)는 추출된 이미지("<img src='/native/camera/image.a.jpeg'>")를 읽는 리드 동작을 실행한다. 예컨대, 도 2에서와 같이 추출된 단어는 "사진"이고, 추출된 이미지는 다양할 수 있다. 네이티브 컴포넌트(17)는 상기 추출된 단어("사진")와 상기 읽은 이미지("<img src='/native/camera/image.a.jpeg'>")를 분석하여 단어의 의도를 추론하는 추론 동작을 실행할 수 있다. 도 2a, 또는 도 2b에서와 같이 상기 단어가 "사진"이고, 이미지가 사각형, 또는 칠각형을 포함하고, 사각형, 또는 칠각형 안에 원, 또는 타원을 포함할 때, 네이티브 컴포넌트(17)는 상기 데이터베이스에 저장된 단어인 "Camera On"와 관련 있는 것(또는 서로 대응되는 것)으로“사진”라는 단어의 의도를 추론할 수 있다. "Camera On"와 관련 있는 것으로 단어의 의도를 추론한 후, 네이티브 컴포넌트(17)는 "Camera On"과 대응되는 네이티브 코드를 실행한다.For example, when the command data is "{{<img src='/native/camera/image.a.jpeg'> photo}}", the
반면, 도 2c, 또는 도 2d에서와 같이 상기 단어가 "사진"이고, 이미지가 사각형을 포함하고, 사각형 안에 원, 또는 타원을 포함하지 않거나, 원, 또는 타원 이외에 다른 도형을 포함할 때, 네이티브 컴포넌트(17)는 "Pickup Photo"와 관련 있는 것(또는 서로 대응되는 것)으로 단어의 의도를 추론할 수 있다.“Pickup Photo"와 관련 있는 것으로 단어의 의도를 추론한 후, 네이티브 컴포넌트(17)는 "Pickup Photo"과 대응되는 네이티브 코드를 실행한다.On the other hand, as in FIG. 2C or 2D, when the word is “photo”, the image includes a rectangle, and does not include a circle or an ellipse in the rectangle, or includes a shape other than a circle or an ellipse, the native The
네이티브 컴포넌트(17)는 해석된 명령 데이터에 따라 네이티브 코드를 실행하고, 실행된 네이티브 코드에 따라 상기 네이티브 기능이 실행된다.The
명령 데이터를 특수문자와 단어만, 또는 특수문자, 이미지, 및 단어만으로 구현함으로써, 웹 어플리케이션(21)의 개발자는 개발 툴의 전문적인 기능을 익히는데 시간을 소비할 필요 없이 기존의 웹페이지 개발 언어(예컨대, HTML, JavaScript, CSS 등)를 그대로 사용하여 웹 어플리케이션(21)을 개발할 수 있다. By implementing command data only with special characters and words, or only special characters, images, and words, the developer of the
웹 서버(30)는 HTTP를 통해 요구를 처리하는 컴퓨터 시스템이다. 웹 서버(30)는 상기 네이티브 기능의 실행에 따라 얻어지는 출력의 정보를 수신한다. 예컨대, 웹 서버(30)는 카메라(11)의 동작에 따라 얻어지는 사진의 정보를 수신하거나, GPS(13)의 동작에 따라 얻어지는 이동 장치(10)의 현재 위치의 정보를 수신한다. The
도 3은 본 발명의 실시 예에 따른 이동 장치의 카메라 기능을 실행시키기 위한 시스템의 블록도를 나타낸다. 3 is a block diagram of a system for executing a camera function of a mobile device according to an embodiment of the present invention.
도 3을 참조하면, ①이용자는 이동 장치(10)의 카메라(11)을 이용하여 사진을 찍기 위해 웹뷰(19)에 구현된 단어 "카메라"를 클릭하여 네이티브 기능의 실행 요구 동작을 수행한다. 웹 어플리케이션(21)은 네이티브 기능의 실행 요구에 응답하여 특수문자와 단어만으로 구성된 명령 데이터를 포함하는 메시지를 브로커(40)로 전송할 수 있도록 사전에 약속할 수 있다. 예컨대, 상기 명령 데이터가 "{{카메라}}"일 때, 웹 어플리케이션(21)은 상기 명령 데이터를 포함하는 메시지를 브로커(40)로 전송한다. Referring to FIG. 3, ① the user clicks the word "camera" implemented in the
웹 어플리케이션(21)은 비동기 통신을 통해 PHP 프로그램을 호출하여 동작시키고, 상기 PHP 프로그램은 소켓 통신을 통해 명령 데이터를 포함하는 메시지를 브로커(40)로 전달한다. The
②브로커(40)는 네이티브 컴포넌트(17)로 상기 명령 데이터를 포함하는 상기 메시지를 전송한다. ② The
③네이티브 컴포넌트(17)는 상기 네이티브 기능을 실행하기 위해 상기 수신된 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행한다. 실행된 네이티브 코드에 따라 카메라(11)에 의해 사진 파일이 생성된다.(3) The
④네이티브 컴포넌트(17)는 상기 사진 파일을 웹 서버(30)로 전송할 수 있다. ④ The
⑤네이티브 컴포넌트(17)는 상기 사진 파일의 정보를 웹뷰(19)를 통해 웹 어플리케이션(21)로 콜백(callback)할 수 있다. 상기 사진 파일의 정보란 사진 파일의 형식, 사이즈, 해상도 및 생성 날짜를 포함한다. ⑤ The
⑥웹 어플리케이션(21)은 웹 서버(30)에 저장하기 위해 상기 사진 파일의 정보를 웹 서버(30)로 전송할 수 있다. ⑥ The
도 4는 본 발명의 실시 예에 따른 이동 장치의 GPS 기능을 실행시키기 위한 시스템의 블록도를 나타낸다. 4 is a block diagram of a system for executing a GPS function of a mobile device according to an embodiment of the present invention.
도 4를 참조하면, ①이용자는 이동 장치(10)의 GPS(13)을 이용하여 이동 장치(10)의 현재 위치를 알기 위해 웹 어플리케이션(21)에 구현된 단어 GPS를 클릭하여 네이티브 기능의 실행 요구 동작을 수행한다. 웹 어플리케이션(21)은 네이티브 기능의 실행 요구에 응답하여 특수문자와 단어만으로 구성된 명령 데이터를 포함하는 메시지를 브로커(40)로 전송할 수 있다. 예컨대, 상기 명령 데이터는 "{{GPS}}"일 수 있다. Referring to FIG. 4, ① a user clicks the word GPS implemented in the
②브로커(40)는 네이티브 컴포넌트(17)로 상기 명령 데이터를 포함하는 상기 메시지를 전송한다. ② The
③네이티브 컴포넌트(17)는 상기 네이티브 기능을 실행하기 위해 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행한다. 실행된 네이티브 코드에 따라 GPS(13)에 의해 현재 위치의 정보가 생성된다.(3) The
④네이티브 컴포넌트(17)는 웹 서버(30)에 저장하기 위해 상기 현재 위치의 정보를 웹 서버(30)로 전송할 수 있다. ④ The
도 5는 본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법을 설명하기 위한 흐름도를 나타낸다. 5 is a flowchart illustrating a method for executing a native function of a mobile device according to an embodiment of the present invention.
도 1과 도 5를 참조하면, 웹 어플리케이션(19)은 네이티브 기능의 실행 요구에 응답하여 특수문자와 단어만, 또는 특수문자, 이미지, 및 단어만으로 구성된 명령 데이터를 포함하는 메시지를 브로커(40)로 전송한다(S100). 1 and 5, in response to a request for executing a native function, the
네이티브 컴포넌트(17)는 브로커(40)로부터 상기 명령 데이터를 포함하는 상기 메시지를 수신한다(S200). The
상기 네이티브 컴포넌트(17)는 상기 네이티브 기능을 실행하기 위해 상기 수신된 메시지에 포함된 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행한다(S300).The
도 6은 본 발명의 다른 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법을 설명하기 위한 흐름도를 나타낸다. 6 is a flowchart illustrating a method for executing a native function of a mobile device according to another embodiment of the present invention.
도 1 내지 도 3, 및 도 6을 참고하면, 실시 예에 따라 웹 어플리케이션(21)은 광고와 같은 다른 웹사이트의 내용도 웹뷰(19)에 표시하도록 구현될 수 있다. 즉, 웹뷰(19)에는 웹 어플리케이션(21)의 내용뿐만 아니라 광고와 같은 다른 웹사이트의 내용도 함께 표시될 수 있다. 상기 다른 웹사이트는 웹 어플리케이션(21)을 구현한 개발자가 아니라 제3자에 의해 구현된 사이트를 의미한다. Referring to FIGS. 1 to 3 and 6, according to an embodiment, the
상기 다른 웹사이트도 네이티브 기능이 실행되도록 구현될 수 있다. 즉, 이동 장치(10)의 이용자는 웹뷰(19)에 표시된 상기 다른 웹사이트의 특정 단어, 특정 아이콘, 또는 이들의 조합을 클릭하여 이동 장치(10)의 카메라(11), GPS (13), 또는 NFC(15)의 기능의 실행 요구 동작을 수행할 수 있다. The other websites may also be implemented to execute native functions. That is, the user of the
이 때, 상기 다른 웹사이트는 웹 어플리케이션(21)을 구현한 개발자가 아니기 때문에 신뢰하기 어렵다. 예컨대, 상기 다른 웹사이트에서 표시된 특정 단어, 특정 아이콘, 또는 이들의 조합이 클릭됨으로써 이동 장치(10)의 내부에 구현된 연락처가 해킹될 수 있다. At this time, since the other website is not a developer who implemented the
이러한 상기 다른 웹사이트의 네이티브 기능의 실행으로 인한 이동 장치(10)의 해킹을 방지하기 위해 다음과 같은 방법이 제안될 수 있다. In order to prevent hacking of the
웹 어플리케이션(21)의 개발자에 의해 구현된 네이티브 기능이 아니라 상기 개발자가 아닌 제3자의 웹사이트에서 구현된 네이티브 기능의 실행 요구가 있을 때, 웹 어플리케이션(21)은 먼저 플래그 값에 임의의 값이 설정되었는지 검사한다(S10000). 상기 제3자의 웹사이트는 웹 어플리케이션(21)을 구현한 개발자가 아니라 제3자에 의해 구현된 사이트로 웹 어플리케이션(21)에 의해 웹뷰(19)에서 상기 제3자의 웹사이트의 내용이 표시되도록 구현된 사이트를 의미한다. When there is a request to execute a native function implemented on a website of a third party other than the developer rather than a native function implemented by the developer of the
상기 플래그 값에 임의의 값이 설정되었을 때, 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 네이티브 컴포넌트(17)는 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한다(S50000). When an arbitrary value is set for the flag value, the
실시 예에 따라 웹 어플리케이션(21)의 개발자에 의해 구현된 네이티브 기능이 아니라 상기 개발자가 아닌 제3자의 웹사이트에서 구현된 네이티브 기능의 실행 요구가 있을 때, 웹 어플리케이션(21)은 상기 제3자의 웹사이트의 평균 방문 횟수를 카운트할 수 있다. 또한, 실시 예에 따라 상기 플래그 값에 임의의 값이 설정되지 않았을 때, 웹 어플리케이션(21)은 상기 제3자의 웹사이트의 평균 방문 횟수를 카운트할 수 있다(S20000). 상기 평균 방문 횟수는 일 평균 방문 횟수, 1주일 평균 방문 횟수, 1달 평균 방문 횟수, 또는 연 평균 방문 횟수일 수 있다. 상기 제3자의 웹사이트의 내용은 웹뷰(19)에 표시되는 광고일 수 있다. According to an embodiment, when there is a request to execute a native function implemented on a website of a third party other than the developer, not a native function implemented by the developer of the
웹 어플리케이션(21)은 상기 카운트된 평균 방문 횟수가 미리 결정된 값을 넘는지 비교한다(S30000). 상기 미리 결정된 값은 임의로 설정될 수 있다. 상기 카운트된 평균 방문 횟수가 상기 미리 결정된 값을 넘을 때, 상기 제3자의 웹사이트는 많은 사람들이 방문하는 사이트로 신뢰할 수 있다. The
또한, 상기 카운트된 평균 방문 횟수가 상기 미리 결정된 값을 넘을 때, 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 네이티브 컴포넌트(17)는 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한다(S50000). In addition, when the counted average number of visits exceeds the predetermined value, the
실시 예에 따라 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 네이티브 기능을 실행하도록 허락한 후, 플래그 값으로 임의의 값을 설정하고, 상기 임의의 값으로 설정된 플래그 값을 저장할 수 있다. 실시 예에 따라 상기 임의의 값으로 설정된 플래그 값은 네이티브 컴포넌트(17)로 복사되어 네이티브 컴포넌트(17)도 상기 플래그 값을 저장할 수 있다. According to an embodiment, the
상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한 후, 이동 장치(10)의 이용자는 상기 제3자의 웹사이트에서 구현된 네이티브 기능의 실행을 재요구할 때, 웹 어플리케이션(21)은 상기 플래그 값에 설정된 상기 임의의 값에 따라 상기 제3자의 웹사이트의 평균 방문 횟수를 카운트하지 않고, 바로 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 이미 웹 어플리케이션(21)은 상기 제3자의 웹사이트에 대해 신뢰할 수 있는 사이트라고 판단하였기 때문이다. 상기 플래그 값의 설정으로 인해 상기 제3자의 웹사이트의 평균 방문 횟수를 카운트하는 동작을 생략할 수 있어 네이티브 기능의 속도를 향상시킬 수 있는 효과가 있다. After executing the native function implemented on the third party's website, when the user of the
실시 예에 따라 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한 후, 이동 장치(10)의 이용자는 상기 제3자의 웹사이트에서 구현된 네이티브 기능의 실행을 재요구할 때, 웹 어플리케이션(21)은 웹 어플리케이션(21)에 저장된 상기 임의의 값으로 설정된 플래그 값과 네이티브 컴포넌트(17)에 저장된 상기 임의의 값으로 설정된 플래그 값을 비교하여 양 값들이 일치할 때만, 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 웹 어플리케이션(21)에 저장된 상기 임의의 값은 해킹에 의해 변경될 가능성이 있기 때문이다. According to an embodiment, after executing the native function implemented on the third party's website, when the user of the
상기 카운트된 평균 방문 횟수가 미리 결정된 값을 넘지 않을 때, 웹 어플리케이션(21)은 웹 어플리케이션(21)에 저장된 상기 웹사이트와 대응하는 제1레지스터 값과 네이티브 컴포넌트(17)에 저장된 상기 웹사이트와 대응하는 제2레지스터 값을 서로 비교한다(S40000). When the counted average number of visits does not exceed a predetermined value, the
웹 어플리케이션(21)은 신뢰할 수 있는 사이트들의 리스트를 수신하여 상기 신뢰할 수 있는 사이트들에 대해서는 상기 제1레지스터 값으로 난수를 설정하고, 상기 제1레지스터 값을 네이티브 컴포넌트(17)로 전송한다. 네이티브 컴포넌트(17)는 상기 제1레지스터 값을 상기 제2레지스터 값으로서 저장한다. 상기 신뢰할 수 있는 사이트들의 리스트는 주기적으로 업데이트될 수 있다. The
상기 제1레지스터 값과 상기 제2레지스터 값이 서로 일치할 때, 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 네이티브 컴포넌트(17)는 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한다(S50000). 상기 제1레지스터 값은 해킹될 수 있지만, 제2레지스터 값은 네이티브 컴포넌트(17)에 저장된 값으로 해킹될 수 없다. 예컨대, 해커는 신뢰가능한 사이트로 보일 수 있게 상기 제1레지스터 값을 변경할 수 있지만, 제1레지스터 값과 제2레지스터 값의 비교로 이러한 해킹을 방지할 수 있다. When the first register value and the second register value coincide with each other, the
실시 예에 따라 상기 제1레지스터 값과 상기 제2레지스터 값이 서로 일치할 때, 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락한 후, 웹 어플리케이션(21)은 상기 플래그 값으로 임의의 값을 설정하고, 임의의 값이 설정된 플래그 값이 저장될 수 있다. 실시 예에 따라 상기 임의의 값이 설정된 플래그 값은 네이티브 컴포넌트(17)로 복사되어 네이티브 컴포넌트(17)도 상기 플래그 값을 저장할 수 있다. According to an embodiment, when the first register value and the second register value coincide with each other, the
상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한 후, 이동 장치(10)의 이용자는 상기 제3자의 웹사이트에서 구현된 네이티브 기능의 실행을 재요구할 때, 웹 어플리케이션(21)은 상기 플래그 값에 설정된 상기 임의의 값에 따라 상기 제1레지스터 값과 제2레지스터 값을 서로 비교하지 않고, 바로 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락한다. After executing the native function implemented on the third party's website, when the user of the
이미 웹 어플리케이션(21)은 상기 제1레지스터 값과 상기 제2레지스터 값의 비교를 통해 상기 제3자의 웹사이트에 대해 신뢰할 수 있는 사이트라고 판단하였기 때문이다. 상기 플래그 값의 설정으로 인해 상기 제3자의 웹사이트의 평균 방문 횟수를 카운트하는 동작과, 상기 제3자의 웹사이트에 대한 상기 제1레지스터 값과 상기 제2레지스터 값의 비교 동작을 생략할 수 있어 네이티브 기능의 속도를 향상시킬 수 있는 효과가 있다. This is because the
실시 예에 따라 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한 후, 이동 장치(10)의 이용자는 상기 제3자의 웹사이트에서 구현된 네이티브 기능의 실행을 재요구할 때, 웹 어플리케이션(21)은 웹 어플리케이션(21)에 저장된 상기 임의의 값으로 설정된 플래그 값과 네이티브 컴포넌트(17)에 저장된 상기 임의의 값으로 설정된 플래그 값을 비교하여 양 값들이 일치할 때만, 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 웹 어플리케이션(21)에 저장된 상기 임의의 값은 해킹에 의해 변경될 가능성이 있기 때문이다. According to an embodiment, after executing the native function implemented on the third party's website, when the user of the
상기 제1레지스터 값과 상기 제2레지스터 값이 서로 일치하지 않을 때, 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하지 못하도록 한다(S60000). 따라서 신뢰성있는 제3자의 웹사이트에 대해서만 네이티브 기능이 수행되도록 함으로써 보안이 강화될 수 있다. When the first register value and the second register value do not match each other, the
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to the exemplary embodiment shown in the drawings, this is only exemplary, and those of ordinary skill in the art will appreciate that various modifications and other equivalent embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention should be determined by the technical idea of the attached registration claims.
100: 시스템; 17: 네이티브 컴포넌트;
10: 이동 장치; 19; 웹뷰;
11: 카메라; 21; 웹 어플리케이션;
13; GPS; 30: 웹 서버;
15: NFC; 40: 브로커; 100: system; 17: native components;
10: moving device; 19; Web view;
11: camera; 21; Web application;
13; GPS; 30: web server;
15: NFC; 40: broker;
Claims (2)
네이티브 컴포넌트(native component)는 상기 브로커로부터 상기 명령 데이터를 포함하는 상기 메시지를 수신하는 단계; 및
상기 네이티브 컴포넌트는 상기 네이티브 기능을 실행하기 위해 상기 수신된 메시지에 포함된 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행하는 단계를 포함하며,
상기 명령 데이터를 해석하는 동작은,
상기 특수문자 사이의 상기 단어를 추출하는 추출 동작을 실행하는 단계; 및
상기 추출된 단어의 일부를 이용하여 개발자가 작성된 단어의 의도를 추론하는 추론 동작을 실행하는 단계를 포함하는 브로커를 이용한 이동 장치의 네이티브 기능을 실행시키기 위한 방법.In response to a request for executing a native function, the web application transmits a message including command data composed of only special characters and words to the broker;
Receiving, by a native component, the message including the command data from the broker; And
The native component includes the step of interpreting the command data included in the received message to execute the native function, and executing a native code according to the interpreted command data,
The operation of interpreting the command data,
Performing an extraction operation of extracting the word between the special characters; And
A method for executing a native function of a mobile device using a broker, comprising the step of executing an inference operation for inferring an intention of a word written by a developer using a part of the extracted word.
상기 브로커로부터 상기 명령 데이터를 포함하는 상기 메시지를 수신하는 네이티브 컴포넌트를 포함하며,
상기 네이티브 컴포넌트는,
상기 네이티브 기능을 실행하기 위해 상기 수신된 메시지에 포함된 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행하며,
상기 명령 데이터를 해석하는 동작은,
상기 특수문자 사이의 상기 단어를 추출하는 추출 동작을 실행하며,
상기 추출된 단어의 일부를 이용하여 개발자가 작성된 단어의 의도를 추론하는 추론 동작을 실행하는 것을 나타내는 이동 장치.
A web application that transmits a message including command data composed of only special characters and words to a broker in response to a request for execution of a native function; And
Including a native component that receives the message including the command data from the broker,
The native component,
Interpret the command data included in the received message to execute the native function, execute a native code according to the interpreted command data,
The operation of interpreting the command data,
An extraction operation for extracting the word between the special characters is performed,
A mobile device indicating that a developer infers an intention of a written word by using a part of the extracted word.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180064208 | 2018-06-04 | ||
KR20180064208 | 2018-06-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190138263A KR20190138263A (en) | 2019-12-12 |
KR102173840B1 true KR102173840B1 (en) | 2020-11-04 |
Family
ID=69004131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190016136A KR102173840B1 (en) | 2018-06-04 | 2019-02-12 | Method and device for excuting native features of a mobile device by using a broker |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102173840B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782214B (en) * | 2020-07-03 | 2024-04-23 | 携程商旅信息服务(上海)有限公司 | Client system, operation method, electronic device and storage medium |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101154387B1 (en) * | 2010-01-22 | 2012-06-15 | 박철준 | apparatus and method for display language data with study function supported |
KR101416104B1 (en) * | 2012-08-07 | 2014-07-14 | 인크로스 주식회사 | A dynamic loading apparatus and method of java script code performing native functions of hybrid web applications |
KR101416100B1 (en) * | 2012-08-07 | 2014-07-14 | 인크로스 주식회사 | An interface for interworking with javascripts in hybrid web applications |
KR102068840B1 (en) * | 2013-09-23 | 2020-01-23 | 주식회사 팬택 | Information display apparatus and method for mobile device |
-
2019
- 2019-02-12 KR KR1020190016136A patent/KR102173840B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20190138263A (en) | 2019-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884767B2 (en) | Service processing methods and devices | |
US11816492B2 (en) | Third party integration of plugins and widgets | |
EP3417639B1 (en) | Message extension app store | |
KR102220127B1 (en) | Method and apparatus for customized software development kit (sdk) generation | |
US11042387B2 (en) | Deploying cross-platform applications on mobile devices with native and web components | |
EP3255909A1 (en) | Messaging application interacting with one or more extension applications | |
CN110990075B (en) | Method, device, equipment and storage medium for starting fast application | |
US8245125B1 (en) | Hybrid rendering for webpages | |
US9934007B2 (en) | Method for operating tool in working environment and machine using such method | |
US8966508B2 (en) | Method for executing hybrid web application and apparatus therefor | |
EP3416054B1 (en) | Method and device for page display, and storage medium | |
US8856958B1 (en) | Personalized content access prompt | |
US20170317948A1 (en) | Hosting apps with native capabilities | |
EP3161598A1 (en) | Light dismiss manager | |
CN112930530B (en) | Client application for network application execution | |
CN102937963A (en) | Template and server content download using protocol handlers | |
CN110851240B (en) | Function calling method, device and storage medium | |
CN105786476B (en) | Data processing method and system between mobile client and server | |
KR102173840B1 (en) | Method and device for excuting native features of a mobile device by using a broker | |
CN107895120B (en) | Data processing method and device in cross-platform application, electronic equipment and storage medium | |
CN111008050B (en) | Page task execution method, device, terminal and storage medium | |
CN111158777B (en) | Component calling method, device and computer readable storage medium | |
KR102173838B1 (en) | Method and device for excuting native features of a mobile device | |
RU2634221C2 (en) | Method and device for drawing presentation of electronic document on screen | |
Fernandes et al. | Quality attributes for mobile applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |