KR20140057174A - 애플리케이션 콘텍스트로의 딥 링크를 위한 방법 및 시스템 - Google Patents

애플리케이션 콘텍스트로의 딥 링크를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20140057174A
KR20140057174A KR1020130131153A KR20130131153A KR20140057174A KR 20140057174 A KR20140057174 A KR 20140057174A KR 1020130131153 A KR1020130131153 A KR 1020130131153A KR 20130131153 A KR20130131153 A KR 20130131153A KR 20140057174 A KR20140057174 A KR 20140057174A
Authority
KR
South Korea
Prior art keywords
application
state
request
user
token
Prior art date
Application number
KR1020130131153A
Other languages
English (en)
Other versions
KR101451882B1 (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 KR20140057174A publication Critical patent/KR20140057174A/ko
Application granted granted Critical
Publication of KR101451882B1 publication Critical patent/KR101451882B1/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

전자 디바이스 상에서 실행되는 제 1 애플리케이션이, 전자 디바이스 상에서 실행되는 제 2 애플리케이션이 행한 제 1 요청을 수신할 수 있다. 제 1 요청에 응답하여, 제 1 애플리케이션은 제 1 요청을 수신한 때의 제 1 애플리케이션의 상태에 대응하는 토큰을 제공할 수 있다. 제 1 애플리케이션의 상태가 변경된 이후, 이전에 제공된 토큰을 포함하는 제 2 요청을 수신하는 것에 응답하여, 제 1 애플리케이션은 제 1 요청이 있었던 때의 제 1 애플리케이션이 있었던 상태로 복귀할 수 있다.

Description

애플리케이션 콘텍스트로의 딥 링크를 위한 방법 및 시스템{METHOD AND SYSTEM FOR DEEP LINKS INTO APPLICATION CONTEXTS}
본 출원의 실시형태는 전자 디바이스(electronic devices)에 관한 것이다. 보다 구체적으로는 애플리케이션 콘텍스트(application contexts)로의 딥 링크(deep links)를 위한 방법 및 시스템에 관한 것이다.
전자 디바이스 상에서 실행되는 애플리케이션들과 상호대화하기 위한 기존의 방법들과 시스템들은 번거로울 수 있고 시간 소모적일 수 있다. 종래의 기존 방법들의 다른 취약점들과 단점들은, 도면을 참조하여 본 개시내용의 나머지 부분에서 설명되는 본원의 방법 및 시스템의 일부 실시형태들과 종래의 기존 방법들의 비교를 통해, 본 발명의 기술분야에서 숙련된 자에게 명백하게 될 것이다.
애플리케이션 콘텍스트로의 딥 링크를 위한 방법 및/또는 시스템이 제공되는바, 실질적으로 이것은 도면들 중 적어도 하나의 도면과 연계되어 설명되고 그리고/또는 이들 도면에 의해 예시되는 바와 같고, 청구항들에서 더 완벽하게 제시된다.
도 1은 본 개시내용의 예시적 구현예에 따른 예시적인 전자 디바이스를 나타낸다.
도 2는 전자 디바이스 상에서 실행되는 애플리케이션의 특정 상태에 대한 직접적인 액세스를 가능하게 하는 예시적 프로세스를 나타낸다.
도 3은 전자 디바이스 상에서 실행되는 애플리케이션의 특정 상태에 대한 직접적인 액세스를 가능하게 하는 예시적 프로세스를 나타낸다.
도 4는 전자 디바이스 상에서 실행되는 애플리케이션들 간에 애플리케이션 상태/위치 정보를 공유하는 예시적 방법을 나타낸다.
본 명세서에서 사용되는 바와 같은, 용어 "회로들" 및 "회로"는, 물리적 전자 컴포넌트들(즉, 하드웨어)을 말하며, 아울러 이러한 하드웨어를 구성할 수 있거나, 하드웨어에 의해 실행될 수 있거나, 그리고/또는 하드웨어와 관련될 수 있는 임의의 소프트웨어 및/또는 펌웨어("코드(code)")를 말한다. 본 명세서에서 사용되는 바와 같은, "그리고/또는", "및/또는"의 기재는 이러한 기재에 의해 결합된 리스트(list) 내의 아이템(item)들 중 어느 하나 혹은 그 이상의 아이템을 의미한다. 예를 들어, "x 및/또는 y"는 3개의 원소를 갖는 집합 {(x), (y), (x, y)} 중에서 임의의 원소를 의미한다. 또 다른 예를 들면, "x, y 및/또는 z"는 7개의 원소를 갖는 집합 {(x), (y), (z), (x, y), (x, z), (y, z), (x, y, z)} 중에서 임의의 원소를 의미한다. 본 명세서에서 사용되는 바와 같은, 용어 "모듈(module)"은 하나 이상의 회로들에 의해 수행될 수 있는 기능부들을 말한다. 본 명세서에서 사용되는 바와 같은, 용어 "예를 들어" 및 "예컨대"는 하나 이상의 비한정적 예, 사례, 혹은 예시의 리스트를 나열한다.
도 1은 본 개시내용의 예시적 구현예에 따른 예시적인 전자 디바이스를 나타낸다. 도 1을 참조하면, 오퍼레이팅 시스템(Operating System, OS)(106) 및 애플리케이션들(108a 및 108b)을 실행시키는 하드웨어(104)를 포함하는 예시적인 전자 디바이스(102)가 제시되어 있다. 예시된 전자 디바이스(102)는 스마트폰이지만, 본 개시내용의 실시형태들은 PC, 랩탑, 태블릿 컴퓨터 등과 같은 다른 전자 디바이스들에 적용가능하다.
애플리케이션들(108a 및 108b) 각각은 전자 디바이스(102)로 하여금 특정 태스크(task)들 및/또는 기능(function)들을 수행하도록 실행되는 코드를 포함할 수 있다. 애플리케이션들(108a 및 108b) 각각은 네이티브 애플리케이션(native application)(즉, 전자 디바이스(102)의 제조자 및/또는 OS(106)의 제조자에 의해 설치된 애플리케이션)일 수 있으며, 그리고/또는 전자 디바이스의 구매 이후 전자 디바이스(102)의 사용자에 의해 설치된 제삼자 애플리케이션(third-party application)일 수 있다. 예시적 애플리케이션들의 일부 리스트는 다음과 같은 것: 입력으로서 미디어 파일들(media files)을 수신하고 대응하는 비디오 및/또는 오디오를 출력 디바이스(들)에 출력하는 미디어 플레이어 애플리케이션(media player application); 입력으로서 전자 문서들(전자책, 전자잡지 등)을 수신하고 해당 문서의 콘텐츠를 출력 디바이스(들)를 통해 제공하는 전자책-리더 애플리케이션(e-reader application); 인터넷을 통해 배달되는 피드(feed)들(예를 들어, RSS 피드들 및/또는 소셜 네트워크 사이트들로부터의 피드들)을 입력으로서 수신하고 해당 피드들을 출력 디바이스(들)를 통해 제공하는 피드 리더(feed reader); 출력 디바이스(들)를 통해 지도를 디스플레이하는 지도 애플리케이션; 메모-기록 애플리케이션(note-taking application), 북마킹 애플리케이션(bookmarking application), 그리고 특정 형식으로 포맷된 파일들을 입력으로서 수신하고 열람(viewing) 및/또는 편집(editing)을 위해 이들을 출력 디바이스들을 통해 제공하는 워드 프로세싱(word processing), 스프레드시트(spreadsheet), 및/또는 프리젠테이션(presentation) 애플리케이션을 포함한다.
OS(106)는 애플리케이션들(108a 및 108b)에 대한 서비스들을 제공하기 위해 하드웨어(104)와 상호작용할 수 있고 하드웨어(104)를 관리할 수 있다.
하드웨어(104)는 예를 들어, 중앙 처리 장치(Central Processing Unit, CPU), 그래픽 프로세서, 메모리, 입출력(Input/Output, I/O) 인터페이스, 사용자 입력 디바이스(들), 및 사용자 출력 디바이스(들)를 포함할 수 있다.
중앙 처리 장치(CPU)는 메모리에 저장된 코드의 라인(line)들을 실행시킴으로써 전자 디바이스의 동작을 유발시키도록 동작가능할 수 있다. 코드의 이러한 라인들은 오퍼레이팅 시스템(106) 및 애플리케이션들(108a 및 108b)을 포함할 수 있다. 제어기는 예를 들어, 싱글 혹은 멀티-코어 프로세서, 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit, ASIC), 현장 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA) 및/또는 임의의 다른 적절한 회로를 포함할 수 있다.
그래픽 프로세서는 CPU로부터 수신된 명령들 및/또는 데이터에 근거하여 스크린으로의 출력을 위해 비디오 스트림(video stream)을 발생시키도록 동작가능할 수 있다. 즉, 스크린 상에 디스플레이될 영상들에 대응하는 데이터 구조들은 CPU에 의해 메모리 모듈에 저장될 수 있고 메모리 모듈로부터 판독될 수 있다. 중앙 처리 장치는 이러한 데이터 구조들을, 표준화된 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)(예를 들어, 표준 위젯 툴킷(Standard Widget Toolkit, SWT), 다이렉트X 비디오 가속 API(DirectX Video Acceleration API), 비디오 디코드 가속 프레임워크 API(Video Decode Acceleration Framework API), 또는 다른 적절한 API)를 통해, 그래픽 프로세서에 전달할 수 있다.
메모리는 프로그램 메모리(program memory) 및 런타임 메모리(run-time memory)를 포함할 수 있다. 메모리는 예를 들어, 비휘발성 메모리, 휘발성 메모리, 판독 전용 메모리(Read Only Memory, ROM), 랜덤 액세스 메모리(Random Access Memory, RAM), 플래시 메모리(flash memory), 자기 저장소, 및/또는 임의의 다른 적절한 메모리를 포함할 수 있다. 프로그램 메모리는 OS(106) 및 애플리케이션들(108a 및 108b)의 동작을 유발시키기 위해 CPU에 의해 실행가능한 코드의 라인들을 저장할 수 있다. 런타임 메모리는 OS(106) 및/또는 애플리케이션들(108a 및 108b)의 실행 동안 발생 및/또는 사용된 데이터를 저장할 수 있다.
입출력(I/O) 인터페이스는, 입력 디바이스(들)로부터 신호들을 수신하여 대응하는 신호들을 CPU 및/또는 그래픽 프로세서에 제공하도록 동작가능할 수 있다.
입력 디바이스(들)는, 예를 들어, 마우스, 터치패드(touchpad), 모션 센서(motion sensor), 트랙볼(trackball), 음성 인식 디바이스(voice recognition device), 키보드, 및/또는 사용자로 하여금 전자 디바이스(102)와 상호대화할 수 있게 하는 임의의 다른 적절한 입력 디바이스를 포함할 수 있다.
출력 디바이스는, 예를 들어, 스크린 및 스피커들을 포함할 수 있다. 스크린은, 예를 들어, 액정 디스플레이(Liquid Crystal Display, LCD) 스크린, OLED 스크린, 전자-잉크 스크린(e-ink screen), 및/또는 그래픽 사용자 인터페이스를 제공하기 위한 임의의 다른 적절한 디바이스일 수 있다.
도 2는 전자 디바이스 상에서 실행되는 애플리케이션의 특정 상태에 대한 직접적인 액세스를 가능하게 하는 예시적 프로세스를 나타낸다. 프로세스는 블록(202)에서 시작하는바, 블록(202)에서, 애플리케이션(108a)은 전자 디바이스 상에서 실행되고 있으며, 시간 경과 그리고/또는 사용자 상호대화의 결과로서 애플리케이션(108a)은 초기 상태를 벗어난 상태에 도달하는바, 이 경우 초기 상태는 예를 들어, "홈(home)" 스크린 혹은 "여기서 시작(start here)" 스크린일 수 있다. 일부 예시적 애플리케이션들 및 이러한 애플리케이션들의 가능한 상태들이 아래에서 설명된다. 도 2에서의 블록들 및 이러한 블록들의 순서는 단지 예시적인 것이다. 추가적인 그리고/또는 서로 다른 블록들 및/또는 블록들의 순서는 서로 다른 구현예들에서 변할 수 있다. 두 개의 연속하는 블록들 간의 블록들의 지속시간 및/또는 시간의 양은 도 2에 제시된 블록들 간에 변할 수 있다.
예시적 미디어 플레이어 애플리케이션( Media Player Application )
동작기(launcher)를 통해 동작(launch)되는 예시적인 미디어 플레이어 애플리케이션의 초기 상태는, 예를 들어, 사용자에게 "미디어 파일을 선택"하도록 촉구하는 스크린이 제공되는 상태일 수 있다. 사용자가 미디어 파일을 선택하는 경우, 미디어 플레이어 애플리케이션은 선택된 미디어 파일이 사용자가 "플레이(Play)"를 누름으로써 플레이될 수 있는 스크린을 제공하는 상태로 이동할 수 있다. 사용자가 "플레이(Play)"를 누르는 것에 응답하여, 미디어 파일은 플레이되기 시작할 수 있고, 미디어 플레이어 애플리케이션의 상태는 미디어 파일이 플레이됨에 따라 계속해서 업데이트될 수 있다(예를 들어, 비디오 혹은 오디오 파일의 각각의 프레임은 미디어 플레이어 애플리케이션의 서로 다른 상태에 대응할 수 있음).
예시적 전자책-리더 애플리케이션(E- Reader Application )
동작기를 통해 동작되는 예시적인 전자책-리더 애플리케이션의 초기 상태는, 예를 들어, 사용자에게 "전자책 혹은 잡지를 선택"하도록 촉구하는 스크린이 제공되는 상태일 수 있다. 사용자가 전자책 혹은 잡지를 선택하는 경우, 전자책-리더 애플리케이션은 해당하는 전자책 혹은 잡지의 커버 페이지(cover page)가 디스플레이되는 상태로 이동할 수 있다. 그 다음에 사용자는 전자책 혹은 잡지의 페이지들을 넘겨 특정 페이지의 특정 부분에 도달할 수 있다. 애플리케이션의 상태는 예를 들어, 사용자가 스크롤링(scrolling)을 행할 때마다, 페이지를 넘길 때마다, 확대축소를 행할 때마다, 하이라이트(highlight)를 행할 때마다, 그리고/또는 전자책 혹은 잡지와 상호대화할 때마다, 업데이트될 수 있다.
예시적 피드 리더 애플리케이션( Feed Reading Application )
동작기를 통해 동작되는 예시적인 피드 리더 애플리케이션의 초기 상태는, 예를 들어, 사용자에게 "피드를 선택"하도록 촉구하는 스크린이 제공되는 상태일 수 있다. 사용자가 피드를 선택하는 경우, 피드 리더 애플리케이션은 특정 피드의 최근 포스트(post)가 디스플레이되는 상태로 이동할 수 있다. 그 다음에 사용자는 선택된 피드의 포스트들을 스크롤링하여 그 선택된 피드의 특정 포스트에 도달할 수 있다. 애플리케이션의 상태는 예를 들어, 사용자가 스크롤링을 행할 때마다, 포스트를 확장시킬 때마다, 포스트를 축소시킬 때마다, 포스트를 삭제할 때마다, 하이라이트를 행할 때마다, 그리고/또는 임의 방식으로 전자책 혹은 잡지와 상호대화할 때마다, 업데이트될 수 있다. 추가적으로 혹은 대안적으로, 애플리케이션의 상태는 새로운 포스트들이 피드에 만들어짐에 따라 업데이트될 수 있다.
예시적 비디오 게임 애플리케이션( Video Game Application )
동작기를 통해 동작되는 예시적인 비디오 게임 애플리케이션의 초기 상태는, 예를 들어, 사용자에게 "난이도(difficulty)를 선택"하도록 촉구하는 스크린이 제공되는 상태일 수 있다. 사용자가 난이도를 선택하는 경우, 게임은 시작될 수 있고 애플리케이션의 상태는 시간이 경과함에 따라, 새로운 이벤트들이 일어남에 따라, 그리고/또는 사용자 및/또는 센서 입력이 수신됨에 따라, 계속해서 업데이트될 수 있다.
예시적 지도 애플리케이션( Map Application )
동작기를 통해 동작되는 예시적인 지도 애플리케이션의 초기 상태는, 예를 들어, 미국 전역을 디스플레이하는 스크린이 제공되는 상태일 수 있다. 이 경우 사용자는 확대축소를 행할 수 있고, 스크롤링을 행할 수 있으며, 표지(markers)를 부가할 수 있고, 그리고/또는 지도와 상호대화할 수 있는바, 여기서 각각의 상호대화는 결과적으로 애플리케이션의 새로운 대응하는 상태에 이르게 한다.
예시적 이메일 애플리케이션( Email Application )
동작기를 통해 동작되는 예시적인 이메일 애플리케이션의 초기 상태는, 예를 들어, 메일수신함(inbox)이 제공되는 상태일 수 있다. 이 경우 사용자는 이메일을 선택할 수 있고, 애플리케이션의 상태는 선택된 이메일의 콘텐츠가 디스플레이되는 상태로 업데이트될 수 있다. 대안적으로, 사용자는 이메일들을 검색할 수 있고 애플리케이션의 상태는 검색 조건을 충족시키는 이메일들이 나열되는 상태로 업데이트될 수 있다. 일반적으로 말하면, 이메일 애플리케이션의 상태는 사용자 입력들, 이벤트들(예컨대, 새로운 이메일의 수신) 및/또는 시간의 경과에 응답하여 변할 수 있다.
예시적 워드 프로세싱 애플리케이션( Word Processing Application )
동작기를 통해 동작되는 예시적인 워드 프로세싱 애플리케이션의 초기 상태는, 예를 들어, 사용자에게 "문서를 선택"하도록 촉구하는 스크린이 제공되는 상태일 수 있다. 사용자가 문서를 선택하는 경우, 워드 프로세싱 애플리케이션은 문서의 도입부가 디스플레이되는 상태로 이동할 수 있다. 그 다음에 사용자는 문서를 스크롤링할 수 있고, 문서를 편집할 수 있고, 문서의 일부분들에 대해 하이라이트를 행할 수 있으며, 확대 혹은 축소를 행할 수 있고, 그리고/또는 문서와 상호대화할 수 있다. 애플리케이션의 상태는 이러한 상호대화들 중 하나 이상(예를 들어, 모든 상호대화들, 사전에 결정된 상호대화들, 및/또는 상호대화들 중 사용자가 선택한 서브세트)에 응답하여 업데이트될 수 있다.
도 2를 다시 참조하면, 블록(204)에서, 애플리케이션(108b)은 애플리케이션(108a)의 현재 상태에 대응하는 토큰(token)에 대한 요청을 전송한다.
블록(206)에서, 애플리케이션(108a)은 요청된 토큰을 발생시키고 토큰을 애플리케이션(108b)에 전송하거나 토큰이 애플리케이션(108b)에 대해 이용가능하게 한다. 예를 들어, 토큰은 애플리케이션(108b)에 의해 판독될 수 있는 지정된 메모리 어드레스에 기입될 수 있다. 토큰은 예를 들어, 상태와 관련된 다양한 파라미터들 및/또는 콘텍스트 정보를 토큰으로 변환시키기 위한 알고리즘 및/또는 룩-업 테이블(look-up table)을 통해 발생된 알파뉴메릭 스트링(alphanumeric string)을 포함할 수 있다.
블록(208)에서, 애플리케이션(108b)은, 토큰이 애플리케이션(108b)에 의해, 혹은 다른 애플리케이션에 의해 그리고/또는 전자 디바이스(102)의 사용자에 의해 이후 액세스될 수 있도록, 토큰을 저장한다. 예를 들어, 애플리케이션(108b)은 메모-기록 애플리케이션일 수 있고, 그리고 메모 내에 텍스트(text)로서 토큰을 저장할 수 있으며, 그리고/또는 저장된 토큰을 가리키는 하이퍼링크(hyperlink)를 메모 내에 저장할 수 있다. 다른 예로서, 애플리케이션(108b)은, 토큰, 웹사이트들(websites)의 URL, 그리고/또는 정보에 대한 빠른 액세스를 위한 다른 토큰들 혹은 링크들을 저장하는 북마킹 애플리케이션일 수 있다.
블록(210)에서, 애플리케이션(108b)은 토큰을 토큰에 대응하는 상태로 애플리케이션이 복귀하도록 하는 요청과 함께 애플리케이션(108a)에 전송한다. 만약 애플리케이션이 실행되고 있지 않은 경우, 토큰의 전송은 애플리케이션(108a)으로 하여금 동작되도록 할 수 있다. 블록(210)은 토큰이 메모리 내에 여전히 저장되어 있는 동안 임의의 시간에 일어날 수 있다. 예를 들어, 블록(208) 이후에, 사용자는 디바이스를 셋다운(set down)시킬 수 있거나, 혹은 심지어 턴오프(turn off)시킬 수 있으며, 수 분(minutes), 혹은 수 시간(hours) 혹은 심지어 수 개월(months) 이후에 디바이스를 복귀시킬 수 있다. 토큰이 여전히 저장되어 있는 한, 프로세스는 블록(210)에서 재개될 수 있다.
블록(212)에서는, 애플리케이션(108a)이 토큰에 대응하는 상태로 복귀하는 것이 가능한지 여부가 결정된다. 만약 상태에 직접적으로 액세스하는 것이 가능하지 않다면, 프로세스는 블록(214)으로 진행한다.
블록(214)에서, 애플리케이션(108a)은, 토큰을 이용하여 상태에 직접적으로 액세스하는 것이 가능하지 않음을, 스크린(screen) 혹은 윈도우(window)에 제공할 수 있다. 예를 들어, 상태가 임의의 보안화된 상태이고 필수 보안 증명(requisite security credentials)이 제시되지 않았기 때문에, 상태에 액세스하는 것이 가능하지 않을 수 있다. 유사하게, 예를 들어, 상태가 사용자 입력에 의존하고 사용자 입력이 만료되어 사용자 입력이 다시 입력될 필요가 있기 때문에, 상태에 직접적으로 액세스하는 것이 가능하지 않을 수 있다.
어떤 경우에 있어서, 상태에 직접적으로 액세스하는 것이 가능하지 않음을 표시하는 것에 추가하여(혹은 이에 대한 대안으로서), 애플리케이션(108a)은 필요한 보안 증명 및/또는 다른 사용자 입력이 제공될 수 있는 스크린 혹은 윈도우를 제공할 수 있다. 이러한 스크린 혹은 윈도우는 예를 들어, 토큰에 대응하는 상태에 본래대로 도달하는 경우에 있어, 복수의 스크린들 혹은 윈도우들에 걸쳐 입력된 입력을 수신할 수 있다. 이러한 방식으로, 애플리케이션의 초기 상태에서 시작하는 경우에서보다도 토큰을 사용한 이후 훨씬 더 빠르게 상태에 도달할 수 있다.
블록(212)으로 다시 돌아가서, 만약 상태에 직접적으로 액세스하는 것이 가능하다면, 프로세스는 블록(216)으로 진행한다.
블록(216)에서, 애플리케이션(108a)은 블록(206)에서 토큰이 발생되었던 때에 있었던 상태가 된다. 블록(210)에서, 애플리케이션(108a)이 동작되는 경우, 애플리케이션(108a)은 초기 상태, 그리고 초기 상태와 토큰에 대응하는 상태 사이의 임의의 중간 상태들을 건네 뛰어(skip) 바로 토큰에 대응하는 상태로 효과적으로 동작되게 된다.
도 3은 전자 디바이스 상에서 실행되는 애플리케이션의 특정 상태에 대한 직접적인 액세스를 가능하게 하는 예시적 프로세스를 나타낸다. 도 3에서, 애플리케이션(108a)은 디바이스(102) 상에서 실행되고 있고, 초기에 예를 들어, "상태 1"로서 표기된 제 1 상태에 있다. 전자 디바이스(102)의 알림 영역(notification area)에는 애플리케이션(108b)에 대한 아이콘(icon)(302)이 있다. 화살표(310)로 나타내어진 바와 같은, 시간 경과 및/또는 사용자 입력의 결과로서, 애플리케이션(108a)은 예를 들어, "상태 2"로 표시된 제 2 상태가 된다.
애플리케이션(108a)이 상태 2에 있는 동안, 전자 디바이스의 사용자는, 화살표(312)로 나타내어진 바와 같이, 애플리케이션(108b)을 호출하기 위해 아이콘(302)을 터치(touch)한다. 애플리케이션(108a)이 계속 실행되고 있는 상태에서 애플리케이션(108b)의 원도우가 나타난다.
애플리케이션(108b)의 디스플레이된 스크린 내에는 사용자 제어부가 존재하는바, 사용자 제어부가 선택되면 사용자 제어부는 애플리케이션(108b)으로부터 애플리케이션(108a)으로 애플리케이션(108a)의 현재 상태에 대응하는 토큰에 대한 요청을 행한다. 화살표(314)로 나타내어진 바와 같이, 사용자가 제어부와 상호대화하는 것(예를 들어, 클릭(click)하는 것 혹은 터치하는 것)에 응답하여, 요청이 전송되고, 애플리케이션(108a)은 요청된 토큰을 발생시켜 전송하며, 애플리케이션(108b)은 토큰을 수신하여 저장한다. 토큰, 또는 토큰에 대한 링크(link) 혹은 포인터(pointer)가 애플리케이션(108b)의 원도우 내에 디스플레이될 수 있다. 링크 혹은 포인터는 예를 들어, 애플리케이션(108a)의 명칭 및/또는 토큰이 발생되었던 때의 타임스탬프(timestamp)일 수 있다. 일부 경우에 있어서는, 토큰에 대응하는 애플리케이션(108a)의 상태 혹은 토큰에 대한 메모를 사용자가 입력할 수 있는 텍스트 필드(text field)가 또한 디스플레이될 수 있다. 예를 들어, 애플리케이션(108a)이 미디어 플레이어 애플리케이션인 경우, 사용자는 "이 부분이 노래의 가장 좋은 부분임!"과 같은 메모를 입력할 수 있다. 또 다른 예로서, 애플리케이션(108a)이 전자책-리더 애플리케이션인 경우, 사용자는 "이 문단이 작가의 핵심 논거를 요약한 문단임!"과 같은 메모를 입력할 수 있다. 화살표(316)로 나타내어진 바와 같이, 사용자가 메모를 입력하고 "저장(save)"을 클릭하는 것에 응답하여, 애플리케이션(108b)은 클로즈(close)될 수 있거나 백그라운드(background)에서의 실행으로 복귀할 수 있다.
그 다음에, 화살표(318)로 나타내어진 바와 같이, 사용자가 애플리케이션(108a)을 클로즈한 후, 사용자는 (화살표(316) 동안) 기록된 메모를 오픈(open)시킨다(이러한 오픈은 예를 들어, 아마도 바로 일어날 수 있거나 아마도 몇 주 후에 일어날 수 있음). 메모에는 저장된 토큰을 가리키는 링크 및 입력된 텍스트가 포함된다. 그 다음에, 화살표(322)로 나타내어진 바와 같이, 사용자는 링크와 상호대화한다(예를 들어, 링크를 클릭하거나 터치함). 이에 응답하여, 애플리케이션(108a)은 오픈되고, 상태 1로부터 상태 2로 이동하기 위해서 이전에 요구되었던 (화살표(310)로 나타내어진 바와 같은) 사용자 상호대화 및/또는 시간 경과 없이, 바로 상태 2가 되게 된다(즉, 상태 1 및 임의의 다른 중간 상태들을 건너뜀).
도 4는 전자 디바이스 상에서 실행되는 애플리케이션들 간에 애플리케이션 상태/위치 정보를 공유하는 예시적 방법을 나타낸다. 도 4에 제시된 예시적인 전자 디바이스(102)에서, 애플리케이션(108b)으로부터 애플리케이션(108a)으로의 토큰에 대한 요청은 REVERSE_INTENT 동작의 형태를 취하고 있으며, 토큰을 애플리케이션(108a)으로 전달하는 응답은 INTENT 동작의 형태를 취하고 있다.
다른 구현예들로서 제공될 수 있는 것은, 비일시적 컴퓨터 판독가능 매체 및/또는 저장 매체, 그리고/또는 비일시적 머신 판독가능 매체 및/또는 저장 매체인바, 여기에는 머신 및/또는 컴퓨터에 의해 실행가능한 적어도 하나의 코드 섹션을 구비한 머신 코드 및/또는 컴퓨터 프로그램이 저장되어, 머신 및/또는 컴퓨터로 하여금 애플리케이션 콘텍스트로의 딥 링크를 위한 본 명세서의 앞서 설명된 바와 같은 프로세스를 수행하도록 한다.
이에 따라, 본원의 방법 및/또는 시스템은 하드웨어, 소프트웨어, 혹은 하드웨어와 소프트웨어의 결합으로 실현될 수 있다. 본원의 방법 및/또는 시스템은 적어도 하나의 컴퓨팅 시스템 내에서 중앙 집중형 방식으로 실현될 수 있거나, 혹은 서로 다른 요소들이 수 개의 상호연결된 컴퓨팅 시스템들에 걸쳐 퍼져 있는 분산형 방식으로 실현될 수 있다. 본 명세서에서 설명되는 방법들을 수행하기 위한 어떠한 종류의 컴퓨팅 시스템이나 다른 장치도 적합하다. 하드웨어와 소프트웨어의 전형적인 결합은, 프로그램이나 다른 코드를 갖는 범용 컴퓨팅 시스템일 수 있는바, 여기서 프로그램이나 다른 코드는 로딩 및 실행시 본 명세서에서 설명된 방법들을 수행하도록 컴퓨팅 시스템을 제어한다. 또 하나의 다른 전형적인 구현예는 애플리케이션 특정 집적 회로 혹은 칩을 포함할 수 있다.
본원의 방법 및/또는 시스템은 또한 컴퓨터 프로그램물 내에 내장될 수 있는바, 여기서 컴퓨터 프로그램물은 본 명세서에서 설명된 방법들을 구현할 수 있는 모든 특징들을 포함하고, 아울러 컴퓨터 시스템 내에 로딩되는 경우 이러한 방법들을 수행할 수 있다. 본 명세서에서의 컴퓨터 프로그램은 임의의 언어, 코드 혹은 기호로 나타나는 명령들의 세트의 임의의 표현을 의미하는바, 여기서 명령들의 세트는 정보 프로세싱 능력을 갖는 시스템으로 하여금, 특정 기능을 직접적으로 수행하도록 의도된 것이거나 혹은 (a) 또 하나의 다른 언어, 코드 또는 기호로의 변환과 (b) 서로 다른 물질 형태로 재생성 중 어느 하나 혹은 양쪽 모두를 수행한 이후 특정 기능을 수행하도록 의도된 것이다.
본원의 방법 및/또는 시스템이 특정 구현예들을 참조하여 설명되었지만, 본 발명의 기술분야에서 숙련된 자들은, 본원의 방법 및/또는 시스템의 범위를 벗어남이 없이 다양한 변경이 행해질 수 있고 등가물이 대신 사용될 수 있다는 것을 이해할 것이다. 추가적으로, 본 개시내용의 기술적 사상으로부터 벗어남이 없이 본 개시내용의 가르침에 따라 많은 수정이 특정 상황 혹은 물질에 맞게 행해질 수 있다. 따라서, 본원의 방법 및/또는 시스템은 본 명세서에 개시된 특정 구현예들로만 한정되지 않으며, 본원의 방법 및/또는 시스템은 첨부되는 특허청구범위 내에 있는 모든 구현예들을 포함하도록 의도되었다.

Claims (20)

  1. 전자 디바이스(electronic device) 상에서 실행되는 제 1 애플리케이션(application)에 의해 수행되는 방법으로서,
    상기 제 1 애플리케이션이:
    상기 전자 디바이스 상에서 실행되는 제 2 애플리케이션이 행한 제 1 요청을 수신하는 단계와;
    상기 제 1 요청에 응답하여, 상기 제 1 요청을 수신한 때의 상기 제 1 애플리케이션의 상태에 대응하는 토큰(token)을 제공하는 단계와, 여기서 상기 제 1 애플리케이션의 상태는 상기 제 1 애플리케이션의 제1의 개수의 스크린(screen)들 혹은 윈도우(window)들을 통해 사용자에 의해 입력된 정보에 대응하고;
    상기 제 1 애플리케이션이 상태를 변경시킨 이후, 상기 토큰을 포함하는 제 2 요청을 수신함에 응답하여, 상기 제1의 개수보다 적은 제2의 개수의 스크린들 혹은 윈도우들을 통해 사용자가 정보를 입력할 수 있는 인터페이스(interface)를 발생시키는 단계와; 그리고
    상기 제2의 개수의 스크린들 혹은 윈도우들을 통한 상기 정보의 입력에 응답하여, 상기 제 1 요청이 있었던 때의 상기 제 1 애플리케이션이 있었던 상태로 복귀(return)하는 단계를 수행하는 것을 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 제 1 애플리케이션은 전자책 리더 애플리케이션(book reader application)이고, 상기 상태는 특정 전자책의 특정 페이지(page)에 대응하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 제 1 애플리케이션은 비디오 게임 애플리케이션(video game application)인 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 제 1 애플리케이션은 지도 애플리케이션(map application)이고, 상기 상태는 특정 지도의 특정 도면(view)에 대응하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 제 1 애플리케이션은 피드 리더 애플리케이션(feed-reader application)이고, 상기 상태는 특정 피드(feed)의 특정 포스트(post)에 대응하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 제2의 개수의 스크린들 혹은 윈도우들을 통해 입력된 정보와 상기 제1의 개수의 스크린들 혹은 윈도우들을 통해 입력된 정보는 동일한 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 토큰은, 사용자와의 상호대화(interacting)시 상기 제 1 애플리케이션을 동작(launch)시키는 링크(link)로서 저장되고,
    상기 제 1 애플리케이션이 상기 링크를 통해 동작되는 경우, 상기 제 1 애플리케이션은 상기 제 1 요청이 있었던 때의 상기 제 1 애플리케이션이 있었던 상태로 바로 동작되며,
    상기 제 1 애플리케이션이 동작기(launcher)를 통해 동작되는 경우, 상기 제 1 애플리케이션은 상기 제 1 요청이 있었던 때의 상기 제 1 애플리케이션이 있었던 상태와는 다른 상태로 동작되는 것을 특징으로 하는 방법.
  8. 스마트폰(smartphone)에서 수행되는 방법으로서,
    상기 스마트폰이:
    제 1 애플리케이션이 상기 스마트폰 상에서 실행되는 동안, 상기 스마트폰의 네비게이션 영역(navigation area)에 위치한 아이콘(icon)과 사용자의 상호대화에 응답하여, 메모 기록 애플리케이션(note-taking application)의 윈도우를 제공하는 단계와, 여기서 상기 제 2 애플리케이션의 윈도우는 텍스트 필드(text field)를 포함하고;
    사용자 입력에 응답하여, 상기 사용자 입력이 있는 때의 상기 제 1 애플리케이션의 상태에 대응하는 링크를 발생시키는 단계와; 그리고
    상기 발생된 링크를 상기 텍스트 필드를 통해 입력된 텍스트와 함께 저장하여 상기 링크 및 상기 텍스트가 상기 전자 디바이스의 사용자에게 후속적으로 액세스될 수 있도록 하는 단계를 수행하는 것을 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 링크와 사용자의 상호대화에 응답하여, 상기 제 2 애플리케이션을 동작시키는 것과 그리고 상기 링크가 발생되었던 때의 상기 제 2 애플리케이션이 있었던 상태로 상기 제 2 애플리케이션을 구성하는 것을 포함하는 것을 특징으로 하는 방법.
  10. 제8항에 있어서,
    상기 제 1 애플리케이션은 전자책 리더 애플리케이션이고, 상기 제 1 애플리케이션의 상태는 특정 전자책의 특정 페이지에 대응하는 것을 특징으로 하는 방법.
  11. 제8항에 있어서,
    상기 제 1 애플리케이션은 미디어 플레이어 애플리케이션(media player application)이고, 상기 제 1 애플리케이션의 상태는 특정 미디어 파일(media file)의 특정 시점(time point)에 대응하는 것을 특징으로 하는 방법.
  12. 제8항에 있어서,
    상기 제 1 애플리케이션은 지도 애플리케이션이고, 상기 제 1 애플리케이션의 상태는 특정 지도의 특정 도면에 대응하는 것을 특징으로 하는 방법.
  13. 제8항에 있어서,
    상기 제 1 애플리케이션은 피드 리더 애플리케이션이고, 상기 제 1 애플리케이션의 상태는 특정 피드의 특정 포스트에 대응하는 것을 특징으로 하는 방법.
  14. 전자 디바이스를 포함하는 시스템으로서,
    상기 전자 디바이스는 제 1 애플리케이션 및 제 2 애플리케이션을 포함하고,
    상기 제 1 애플리케이션은 상기 제 2 애플리케이션이 행한 제 1 요청을 수신하도록 동작가능하며,
    상기 제 1 애플리케이션은, 상기 제 1 요청에 응답하여, 상기 제 1 요청을 수신한 때의 상기 제 1 애플리케이션의 상태에 대응하는 토큰을 제공하도록 동작가능하고, 여기서 상기 제 1 애플리케이션의 상태는 상기 제 1 애플리케이션의 제1의 개수의 스크린들 혹은 윈도우들을 통해 사용자에 의해 입력된 정보에 대응하고,
    상기 제 1 애플리케이션이 상태를 변경시킨 이후, 상기 토큰을 포함하는 제 2 요청을 수신함에 응답하여, 상기 제1의 개수보다 적은 제2의 개수의 스크린들 혹은 윈도우들을 통해 정보가 입력될 수 있는 인터페이스가 발생되고,
    상기 제 1 애플리케이션은, 상기 제2의 개수의 스크린들 혹은 윈도우들을 통한 상기 정보의 입력에 응답하여, 상기 제 1 요청이 있었던 때의 상기 제 1 애플리케이션이 있었던 상태로 복귀하도록 동작가능한 것을 특징으로 하는 시스템.
  15. 제14항에 있어서,
    상기 제 1 애플리케이션은 전자책 리더 애플리케이션이고, 상기 상태는 특정 전자책의 특정 페이지에 대응하는 것을 특징으로 하는 시스템.
  16. 제14항에 있어서,
    상기 제 1 애플리케이션은 미디어 플레이어 애플리케이션이고, 상기 상태는 특정 미디어 파일의 특정 시점에 대응하는 것을 특징으로 하는 시스템.
  17. 제14항에 있어서,
    상기 제 1 애플리케이션은 지도 애플리케이션이고, 상기 상태는 특정 지도의 특정 도면에 대응하는 것을 특징으로 하는 시스템.
  18. 제14항에 있어서,
    상기 제 1 애플리케이션은 피드 리더 애플리케이션이고, 상기 상태는 특정 피드의 특정 포스트에 대응하는 것을 특징으로 하는 시스템.
  19. 제14항에 있어서,
    상기 제 2 애플리케이션은 상기 제 1 요청이 있었던 때의 상기 애플리케이션의 상태에 속하는 사용자 입력 메모(user-entered notes)와 함께 상기 토큰을 저장하는 메모 기록 애플리케이션인 것을 특징으로 하는 시스템.
  20. 제19항에 있어서,
    상기 토큰은, 사용자와의 상호대화시 상기 제 1 애플리케이션을 동작시키는 링크로서 저장되고,
    상기 제 1 애플리케이션이 상기 링크를 통해 동작되는 경우, 상기 제 1 애플리케이션은 상기 제 1 요청이 있었던 때의 상기 제 1 애플리케이션이 있었던 상태로 바로 동작되며,
    상기 제 1 애플리케이션이 동작기를 통해 동작되는 경우, 상기 제 1 애플리케이션은 상기 제 1 요청이 있었던 때의 상기 제 1 애플리케이션이 있었던 상태와는 다른 상태로 동작되는 것을 특징으로 하는 시스템.
KR1020130131153A 2012-11-02 2013-10-31 애플리케이션 콘텍스트로의 딥 링크를 위한 방법 및 시스템 KR101451882B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/667,572 2012-11-02
US13/667,572 US8510764B1 (en) 2012-11-02 2012-11-02 Method and system for deep links in application contexts

Publications (2)

Publication Number Publication Date
KR20140057174A true KR20140057174A (ko) 2014-05-12
KR101451882B1 KR101451882B1 (ko) 2014-10-16

Family

ID=48916823

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130131153A KR101451882B1 (ko) 2012-11-02 2013-10-31 애플리케이션 콘텍스트로의 딥 링크를 위한 방법 및 시스템

Country Status (4)

Country Link
US (1) US8510764B1 (ko)
EP (1) EP2728474A1 (ko)
KR (1) KR101451882B1 (ko)
CN (1) CN103853548B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107430614A (zh) * 2015-08-25 2017-12-01 谷歌公司 到对应资源的应用局部深度链接

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9002821B2 (en) 2013-01-16 2015-04-07 Google Inc. Indexing application pages of native applications
US8996520B2 (en) 2013-03-15 2015-03-31 Google Inc. Ranking of native application content
US9146972B2 (en) 2013-03-15 2015-09-29 Google Inc. Ranking of presentation modes for particular content
US9135346B2 (en) 2013-06-07 2015-09-15 Google Inc. Index data for native applications
US9311407B2 (en) 2013-09-05 2016-04-12 Google Inc. Native application search results
US9608870B1 (en) 2014-02-28 2017-03-28 Google Inc. Deep link verification for native applications
US9251224B2 (en) 2014-03-04 2016-02-02 Google Inc. Triggering and ranking of native applications
US9652508B1 (en) 2014-03-05 2017-05-16 Google Inc. Device specific adjustment based on resource utilities
US10061796B2 (en) 2014-03-11 2018-08-28 Google Llc Native application content verification
US9645980B1 (en) 2014-03-19 2017-05-09 Google Inc. Verification of native applications for indexing
US9524347B1 (en) 2014-04-01 2016-12-20 Google Inc. Automatically implementing an application in response to a search query
US9513961B1 (en) 2014-04-02 2016-12-06 Google Inc. Monitoring application loading
US9767159B2 (en) 2014-06-13 2017-09-19 Google Inc. Ranking search results
EP3161682A1 (en) 2014-06-24 2017-05-03 Google, Inc. Search results for native applications
US10013496B2 (en) 2014-06-24 2018-07-03 Google Llc Indexing actions for resources
US10210263B1 (en) 2014-06-24 2019-02-19 Google Llc Native application search results
CN106663108B (zh) 2014-06-25 2020-08-04 谷歌有限责任公司 用于原生应用的深链接
US9892190B1 (en) 2014-06-25 2018-02-13 Google Inc. Search suggestions based on native application history
US9465682B1 (en) 2015-05-27 2016-10-11 Google Inc. Dynamic deep links to targets
US10042933B2 (en) * 2015-07-02 2018-08-07 Oracle International Corporation Deep linking to application objects
US9348671B1 (en) 2015-07-23 2016-05-24 Google Inc. Monitoring application loading
US9910685B2 (en) 2015-08-13 2018-03-06 Samsung Electronics Co., Ltd. System and method for identifying, indexing, and navigating to deep states of mobile applications
US10203943B2 (en) 2015-08-13 2019-02-12 Samsung Electronics Co., Ltd. Static analysis and reconstruction of deep link handling in compiled applications
US10579687B2 (en) * 2015-09-01 2020-03-03 Google Llc Providing native application search results with web search results
US9983892B2 (en) 2015-11-06 2018-05-29 Samsung Electronics Co., Ltd. Deep linking to mobile application states through programmatic replay of user interface events
US9858094B2 (en) * 2015-11-10 2018-01-02 Samsung Electronics Co., Ltd. Monitoring and actuation of view controller parameters to reach deep states without manual developer intervention
CN105450516B (zh) * 2015-12-25 2018-10-16 精硕科技(北京)股份有限公司 链接路由方法、电子系统及其电子设备和服务器
US20170289338A1 (en) * 2016-03-31 2017-10-05 Microsoft Technology Licensing, Llc Enabling stateful dynamic links in mobile applications
US10257342B2 (en) 2016-03-31 2019-04-09 Microsoft Technology Licensing, Llc Validating stateful dynamic links in mobile applications
US20180032374A1 (en) * 2016-08-01 2018-02-01 Intel Corporation Application launch booster
US9811395B1 (en) * 2016-10-11 2017-11-07 Google Inc. Multi-platform mapping API
US10810278B2 (en) 2017-04-18 2020-10-20 Google Llc Contextual deep bookmarking
WO2018233586A1 (en) 2017-06-20 2018-12-27 Beijing Didi Infinity Technology And Development Co., Ltd. SYSTEMS AND METHODS FOR PROCESSING DATA RELATING TO ONLINE-OFFLINE SERVICE
JP7110371B2 (ja) 2018-12-03 2022-08-01 グーグル エルエルシー スマートデバイスの効率的制御および/またはリンク化

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167455A (en) 1995-05-05 2000-12-26 Apple Computer, Inc. Method and system for synchronous operation of linked command objects
US20030225890A1 (en) * 2002-06-03 2003-12-04 Dunstan Robert A. State token for thin client devices
US7653896B2 (en) * 2004-06-30 2010-01-26 Microsoft Corporation Smart UI recording and playback framework
US7665083B2 (en) 2004-07-16 2010-02-16 Sap Ag Method and apparatus for supporting context links for application program text
EP1851973A4 (en) * 2005-02-14 2010-07-07 Teresis Media Man Inc MULTIPURPOSE MEDIA PLAYER
US8577683B2 (en) * 2008-08-15 2013-11-05 Thomas Majchrowski & Associates, Inc. Multipurpose media players
US20070074116A1 (en) * 2005-09-29 2007-03-29 Teleios, Inc. Multi-pane navigation/synchronization in a multimedia presentation system
US20070192673A1 (en) * 2006-02-13 2007-08-16 Bodin William K Annotating an audio file with an audio hyperlink
US8001528B2 (en) 2006-03-30 2011-08-16 Microsoft Corporation Organization of application state and configuration settings
US20110055713A1 (en) * 2007-06-25 2011-03-03 Robert Lee Gruenewald Interactive delivery of editoral content
US20090164903A1 (en) * 2007-12-20 2009-06-25 International Business Machines Corporation Systems, methods and computer program products for a dynamic display of saved bookmarks based on browsing activity
US8291261B2 (en) * 2008-11-05 2012-10-16 Vulcan Technologies Llc Lightweight application-level runtime state save-and-restore utility
US20110314124A1 (en) * 2009-03-25 2011-12-22 Roger Brian Gimson Capturing an application state
US20110083130A1 (en) 2009-10-01 2011-04-07 Nokia Corporation Dynamic execution context management in heterogeneous computing environments
US8161077B2 (en) * 2009-10-21 2012-04-17 Delphix Corp. Datacenter workflow automation scenarios using virtual databases
KR101657545B1 (ko) * 2010-05-11 2016-09-19 엘지전자 주식회사 휴대 단말기 및 그 동작 방법
US9792425B2 (en) * 2010-11-02 2017-10-17 Ca, Inc. System and method for controlling state tokens

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107430614A (zh) * 2015-08-25 2017-12-01 谷歌公司 到对应资源的应用局部深度链接
CN107430614B (zh) * 2015-08-25 2021-01-22 谷歌有限责任公司 到对应资源的应用局部深度链接

Also Published As

Publication number Publication date
US8510764B1 (en) 2013-08-13
CN103853548A (zh) 2014-06-11
EP2728474A1 (en) 2014-05-07
CN103853548B (zh) 2016-03-23
KR101451882B1 (ko) 2014-10-16

Similar Documents

Publication Publication Date Title
KR101451882B1 (ko) 애플리케이션 콘텍스트로의 딥 링크를 위한 방법 및 시스템
US10902078B2 (en) User-specified user application data sharing
KR101779308B1 (ko) 콘텐츠 프리뷰
US8266544B1 (en) HTML pop-up control
JP6479079B2 (ja) 関連する文書のための拡張機能アクティブ化
US9256445B2 (en) Dynamic extension view with multiple levels of expansion
US20150040065A1 (en) Method and apparatus for generating customized menus for accessing application functionality
US20130139113A1 (en) Quick action for performing frequent tasks on a mobile device
JP5670470B2 (ja) クイックアクセスユーティリティ
US20130021273A1 (en) Mobile terminal and display controlling method thereof
KR20160032938A (ko) 애플리케이션 디스플레이 디바이스 및 방법
US20240095048A1 (en) Program control method and apparatus, electronic device, and non-transitory readable storage medium
US20070266337A1 (en) Contextual link display in a user interface
US20130061171A1 (en) Display apparatus and ui providing method thereof
KR20140148470A (ko) 플링 제스쳐를 사용하여 콘텐츠를 그래픽 인터페이스 윈도우와 연관시키기
US20150058774A1 (en) Gesture-based visualization of financial data
AU2011308901B2 (en) Content preview

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190926

Year of fee payment: 6