KR20130143616A - 점프리스트 작업 및 항목으로부터 액세스되는 콘텐츠를 포함하는 콘텐츠의 표면화 - Google Patents

점프리스트 작업 및 항목으로부터 액세스되는 콘텐츠를 포함하는 콘텐츠의 표면화 Download PDF

Info

Publication number
KR20130143616A
KR20130143616A KR1020137016310A KR20137016310A KR20130143616A KR 20130143616 A KR20130143616 A KR 20130143616A KR 1020137016310 A KR1020137016310 A KR 1020137016310A KR 20137016310 A KR20137016310 A KR 20137016310A KR 20130143616 A KR20130143616 A KR 20130143616A
Authority
KR
South Korea
Prior art keywords
web application
website
browser
content
user
Prior art date
Application number
KR1020137016310A
Other languages
English (en)
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 KR20130143616A publication Critical patent/KR20130143616A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

다양한 실시예가 최종 사용자가 자신의 데스크톱에 웹 애플리케이션 및 웹사이트를 설치할 수 있게 하는 메커니즘을 제공한다. 하나 이상의 실시예에 따르면, 클라이언트 측 코드는, 웹사이트와 연관된 개발자가 사용자 인터페이스와 연관된 바운더리를 정의하게 하고, 그 바운더리가 런타임 엔진에 의해 실행되게 하는 데 이용될 수 있다. 적어도 일부 실시예에서, 개발자는 JavaScript 코드 및/또는 HTML 마크업을 통해, 시작 메뉴 바로가기의 생성, 탐색 및 소위 점프리스트 통합을 위한 다양한 구성을 제공할 수 있다.

Description

점프리스트 작업 및 항목으로부터 액세스되는 콘텐츠를 포함하는 콘텐츠의 표면화{SURFACING CONTENT INCLUDING CONTENT ACCESSED FROM JUMP LIST TASKS AND ITEMS}
최근, 업계에서는 웹 애플리케이션 또는 웹사이트를 사용자의 컴퓨터 데스크톱 환경 또는 "데스크톱"과 통합한다는 개념에 초점을 맞추기 시작했다. 그러나, 이렇게 하는 데 따른 과제가 있다. 예를 들면, 현재 웹사이트들이 데스크톱 통합의 목적을 위해 그들의 사이트의 바운더리를 정하는 것이 곤란하다. 따라서, 최종 사용자가 바운더리를 개발하는 클라이언트 측 스크립트를 통해 바운더리를 정하도록 남겨진다. 이는, 최종 사용자가 반드시 특정 웹사이트를 구축하는 방법을 알고 있는 것은 아닐 수 있으므로, 문제가 될 수 있다. 예를 들면, 최종 사용자가 반드시 링크, 웹 속성 간의 관계 또는 사용자에게 기능을 제공하기 위해 웹사이트에 의해 채용되는 다른 뉘앙스의 모든 것을 알고 있는 것은 아닐 수 있다. 따라서, 최종 사용자의 스크립트는 이러한 링크나 뉘앙스를 이해하고 있지 않을 수 있고, 이에 따라 원치 않는 또는 손상된 사용자 경험으로 이어질 수 있다.
또한, 사용자는 현재 듀얼 부팅 문제로 알려진 것에 직면하고 있다. 구체적으로, 사용자는 자신의 PC를 부팅하고, 브라우저를 시작하고, 마지막으로 작업하려는 특정 웹 애플리케이션을 시작해야만 한다. 이 문제는, 브라우저가 브라우저 chrome에 표시되는 것과 같은 사용자에게 너무 많은 혼란을 제공할 수 있고 웹 애플리케이션과 직접 연관된 특정 작업에 사용자가 전혀 집중하지 못하게 할 수 있다는 사실에 의해 악화된다.
요약
본 요약은 상세한 설명에서 자세히 설명되는 간단한 형태의 개념의 선택을 소개하기 위해 제공된다. 이 개요는 청구되는 내용의 중요한 특징 또는 본질적 특징을 식별하거나 청구된 내용의 범위를 제한하는 데 이용되는 것을 의도하고 있지 않다.
다양한 실시예는 클라이언트 디바이스 데스크톱 등의 클라이언트 디바이스에 최종 사용자가 웹 애플리케이션 및 웹사이트를 설치할 수 있게 하는 메커니즘을 제공한다. 하나 이상의 실시예에 따르면, 클라이언트 측 코드는, 웹사이트와 연관된 개발자가 사용자 상호 작용과 연관된 바운더리를 정할 수 있게 하고 이 바운더리가 런타임 엔진에 의해 실행되는 데 이용될 수 있다. 적어도 일부 실시예에서, 개발자는 JavaScript 코드를 통해, 시작 메뉴의 다수의 다른 특징뿐만 아니라, 시작 메뉴 바로가기, 탐색, 소위 점프리스트(jumplist) 통합의 생성을 위해 다양한 구성을 제공할 수 있다.
다양한 실시예는 사이트 개발자가 점프리스트 작업 또는 항목으로부터 액세스되는 콘텐츠를 포함하는 콘텐츠를 클라이언트 디바이스 상에 표면화시키는 방식을 정의할 수 있도록 해준다. 콘텐츠는 다양한 콘텐츠 컨베이언스(content conveyance)를 통해 표면화될 수 있다. 예를 들어, 콘텐츠는 탭, 팝업 창, 브라우저 창, 인플레이스 탐색(in-place navigation)을 사용하여, 또는 페이지 내, 프레임 또는 다른 요소 내와 같은 상이한 레벨에서 표면화될 수 있다. 또한, 콘텐츠는, HTML 마크업과 같은 선언형 방식 및/또는 예컨대 Javascript를 이용한 스크립트 기반 방식을 이용하는 메카니즘과 같은 다양한 표면화 메카니즘을 사용하여 표면화될 수 있다.
도면 전반에 걸쳐 동일한 부호는 동일한 특징에 부호를 부여하는 데 사용된다.
도 1은 하나 이상의 실시예에 따라 본원에 기술된 다양한 원리가 채용될 수 있는 동작 환경을 나타내는 도면이다.
도 2는 하나 이상의 실시예에 따른 웹 애플리케이션 창을 나타내는 도면이다.
도 3은 하나 이상의 실시예에 따른 JavaScript API를 나타내는 도면이다.
도 4는 하나 이상의 실시예에 따른 설치 방법의 단계를 설명하는 흐름도이다.
도 5는 하나 이상의 실시예에 따른 웹 애플리케이션 상호 작용 방법의 단계를 설명하는 흐름도이다.
도 6은 하나 이상의 실시예에 따른 클라이언트 데스크톱의 일부를 나타내는 도면이다.
도 7은 하나 이상의 실시예에 따른 JavaScript API를 나타내는 도면이다.
도 8은 하나 이상의 실시예에 따른 웹사이트와 커스텀 점프리스트 사이의 동적 상호 작용을 나타내는 도면이다.
도 9는 하나 이상의 실시예에 따른 클라이언트 데스크톱의 일부를 나타내는 도면이다.
도 10은 하나 이상의 실시예에 따른 클라이언트 데스크톱의 일부를 나타내는 도면이다.
도 11은 하나 이상의 실시예에 따른 설치 방법의 단계를 설명하는 흐름도이다.
도 12는 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다.
도 13은 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다.
도 14는 하나 이상의 실시예에 따른 클라이언트 데스크톱을 나타내는 도면이다.
도 15는 하나 이상의 실시예에 따른 드래그 앤드 드롭(drag and drop) 조작을 개략적으로 나타내는 도면이다.
도 16은 하나 이상의 실시예에 따른 설치 방법의 단계를 설명하는 흐름도이다.
도 17은 하나 이상의 실시예에 따른 클라이언트 데스크톱을 나타내는 도면이다.
도 18은 하나 이상의 실시예에 따른 설치 방법의 단계를 설명하는 흐름도이다.
도 19는 하나 이상의 실시예에 따른 클라이언트 데스크톱을 나타내는 도면이다.
도 20은 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다.
도 21은 하나 이상의 실시예에 따른 단계를 설명하는 흐름도이다.
도 22는 하나 이상의 실시예를 구현하는 데 사용될 수 있는 예시적 시스템을 나타내는 도면이다.
개요
다양한 실시예는, 최종 사용자가 클라이언트 디바이스 데스크톱 등의 클라이언트 디바이스에 웹 애플리케이션 및 웹사이트를 설치할 수 있게 하는 메커니즘을 제공한다. 하나 이상의 실시예에 따르면, 웹사이트와 연관된 개발자가 사용자 상호 작용과 연관된 바운더리를 정하게 할 수 있고 그 바운더리가 런타임 엔진에 의해 실행되게 하는 데 클라이언트 측 코드가 이용될 수 있다. 적어도 일부 실시예에서, 개발자는 JavaScript 코드를 통해, 시작 메뉴 바로가기, 탐색 및 소위 점프리스트 통합 및 많은 다른 특징을 생성하기 위해 다양한 구성을 제공할 수 있다.
다양한 실시예는 사이트 개발자가 점프리스트 작업 또는 항목으로부터 액세스되는 콘텐츠를 포함하는 콘텐츠를 클라이언트 디바이스 상에 표면화시키는 방식을 정의할 수 있도록 해준다. 콘텐츠는 다양한 콘텐츠 컨베이언스을 통해 표면화될 수 있다. 예를 들어, 콘텐츠는 탭, 팝업 창, 브라우저 창, 인플레이스 탐색을 사용하여, 또는 페이지 내, 프레임 또는 다른 요소 내와 같은 상이한 레벨에서 표면화될 수 있다. 또한, 콘텐츠는, HTML 마크업과 같은 선언형 방식 및/또는 예컨대 Javascript를 이용한 스크립트 기반 방식을 이용하는 메카니즘과 같은 다양한 표면화 메카니즘을 사용하여 표면화될 수 있다.
바운더리는, 기능이 최종 사용자에게 노출되는 방법에 관련되는 개발자 정의 경험으로서 생각될 수 있다. 바운더리는 개별 애플리케이션 또는 도메인에 호스팅되는 웹사이트의 서브세트와 연관될 수 있는 최상위 도메인 및 서브 도메인 등의 웹사이트의 도메인과 연관된다. 따라서, 특정 웹 애플리케이션을 동작되게 하기 위해 사용되는 도메인, 서브 도메인, 폴더, 하위 사이트, 프로토콜, 호스트, 경로 등의 세트에 의해 바운더리가 정해질 수 있다.
하나 이상의 실시예에서, 웹사이트가 상술 및 후술하는 기능을 선택할 수 있다. 이 경우에, 개발자는 일부 경우에 JavaScript로 표현된 코드를 제공하여 그들의 웹사이트와의 사용자 경험의 바운더리를 정한다. 이에 의해 사이트 개발자는 사용자 경험의 다수의 상이한 측면을, 예를 들어 점프리스트 작업 또는 항목으로부터 액세스되는 콘텐츠를 포함하는 콘텐츠를 클라이언트 디바이스 상에 표면화시키는 방식을 정의할 수 있다. 대체 또는 추가적으로, 상술 또는 후술하는 기능을 선택하지 않는 웹사이트는 그들을 위해 제공되는 기본(default) 경험을 가질 수 있다.
다음의 설명에서, "동작 환경"이라는 제목의 섹션이 제공되며 하나 이상의 실시예가 채용될 수 있는 하나의 환경을 설명한다. 이어서, "통합 인프라"라는 제목의 섹션은 하나 이상의 실시예에 따라 클라이언트 디바이스에 웹 애플리케이션을 통합할 수 있게 하는 인프라를 설명한다. 이어서, "점프리스트 통합"이라는 제목의 섹션은 하나 이상의 실시예에 따라 소위 점프리스트가 통합될 수 있는 방법을 설명한다. 이어서, "작업 표시줄 고정"이라는 제목의 섹션은 하나 이상의 실시예에 따라 웹 애플리케이션이 작업 표시줄에 고정되는 방법을 설명한다. 이어서, "콘텐츠가 표면화되는 방식을 메타태그를 이용하여 정의"라는 제목의 섹션은 하나 이상의 실시예에 따라 콘텐츠가 표면화될 수 있는 가시적 컨베이언스를 정의하는데 메타태그가 사용되는 실시예를 설명한다. 이어서, "콘텐츠가 표면화되는 방식을 스크립트를 사용하여 정의"라는 제목의 섹션은 하나 이상의 실시예에 따라 콘텐츠가 표면화될 수 있는 가시적 컨베이언스를 정의하는데 스크립트가 사용되는 방식을 설명한다. 마지막으로, “예시적 시스템”이라는 제목의 섹션은 하나 이상의 실시예를 구현하는 데 사용될 수 있는 예시적 시스템을 설명한다.
이하에서, 하나 이상의 실시예를 구현할 수 있는 예시적인 동작 환경을 고려한다.
동작 환경
도 1은 전반적으로 100에서, 하나 이상의 실시예에 따른 동작 환경을 나타낸다. 환경(100)은 하나 이상의 프로세서(104), 이상의 컴퓨터 판독 가능한 저장 매체(106) 및 컴퓨터 판독 가능한 기억 매체에 상주하며 프로세서(들)에 의해 실행 가능한 하나 이상의 애플리케이션(108)을 갖는 컴퓨팅 디바이스(102)를 포함한다. 컴퓨터 판독 가능한 저장 매체는 제한이 아닌 예로서, 컴퓨팅 디바이스와 일반적으로 연관된 휘발성 및 비휘발성 메모리 및/또는 저장 매체의 모든 형태를 포함할 수 있다. 이러한 매체는 ROM, RAM, 플래시 메모리, 하드 디스크, 이동식 매체 등을 포함할 수 있다. 컴퓨팅 디바이스의 하나의 구체적인 예를 이하 도 22에서 도시 및 설명한다.
또한, 컴퓨팅 디바이스(102)는 웹 브라우저(110) 형태의 소프트웨어 애플리케이션을 포함한다. 임의의 적절한 웹 브라우저가 이용될 수 있으며 그 예는 문서 및 기타의 양수인으로부터 입수 가능하다. 또한, 컴퓨터 판독 가능한 저장 매체(106)는 상술 및 후술하는 바와 같이 동작하는 웹 애플리케이션 모드 브라우저(111)를 포함할 수 있다. 웹 애플리케이션 모드 브라우저(111)는, 웹사이트 각각에 대해 각각 API 호출을 받고 API 호출을 하고, 웹 애플리케이션 설치 프로세스를 감독하고, 바운더리를 실행하고, 상술 및 후술하는 기능을 가능하게 하는 런타임 엔진으로서 기능한다. 동작에 있어서, 웹 애플리케이션 모드 브라우저는 보통의 브라우저 기능의 대부분이 오프되는 풀 브라우저의 축소 버전이다. 일부 예에서, 웹 애플리케이션 모드 브라우저는 일반적인 브라우저 제어의 많은 부분을 포함하지 않는 "크롬리스(chromeless)"로서 생각될 수 있다. 그러나, 일부 명령은 작은 컨트롤 바를 통해 노출될 수 있다. 따라서, 웹 애플리케이션 모드 브라우저는 사용자에 대해 주의 분산을 많이 제거하고 사용자가 그들의 웹 애플리케이션과 상호 작용하는 방법을 웹사이트가 제어할 수 있는 지향된 웹사이트 정의 사용자 경험을 허용한다.
동작에 있어서, 웹 애플리케이션 모드 브라우저는, 웹사이트와 클라이언트 디바이스의 운영 체제 사이에 로컬 존재한다고 생각될 수 있다. 따라서, 웹 애플리케이션 모드 브라우저는 웹사이트로부터 호출을 받고 응답하여 운영 체제가 본원에 기재된 기능에 영향을 주게 한다. 마찬가지로, 웹 애플리케이션 모드 브라우저는 운영 체제로부터 호출을 받아 웹사이트의 기능에 영향을 줄 수 있다. 예를 들면, 운영 체제는 데스크톱의 작업 표시줄과 상호 작용을 가능하게 하는 API를 노출한다. 웹 애플리케이션 모드 브라우저는 웹사이트로부터 호출을 받고, 이하에서 명확해지는 바와 같이, 응답하여 작업 표시줄 기능 및 그 밖의 다른 기능을 가능하게 하는 API 호출을 할 수 있다.
웹 애플리케이션 모드 브라우저(111)는 독립 컴포넌트로서 구현될 수 있다. 대체 또는 추가적으로, 웹 애플리케이션 모드 브라우저(111)는 애플리케이션(108) 및/또는 브라우저(110)의 일부로서 구현될 수 있다.
또한, 환경(100)은 인터넷과 같은 네트워크(112) 및 콘텐츠가 송수신될 수 있는 하나 이상의 웹사이트(114)를 포함한다. 이러한 콘텐츠는 상술 및 후술하는 바와 같이, 클라이언트 데스크톱에 통합되거나, 클라이언트 디바이스를 통해 달리 이용 가능한 웹 애플리케이션 등의 콘텐츠를 포함할 수 있다.
컴퓨팅 디바이스(102)는, 제한이 아닌 예시로서 데스크톱 컴퓨터, 휴대용 컴퓨터, PDA 등의 포켓용 컴퓨터, 휴대 전화 등과 같은 임의의 적절한 컴퓨팅 디바이스로서 구현될 수 있다.
예시적인 동작 환경을 설명했으며, 이하에서는 웹 애플리케이션이 클라이언트 디바이스에 통합될 수 있게 하는 인프라의 논의를 고려한다.
통합 인프라
하나 이상의 실시예에 따르면, 웹사이트는 더 일반적인 "사이트 모드" 경험의 일부로서 제공되는 도메인 탐색을 선택할 수 있다. 사용자가 특정 도메인의 내부 및 외부 링크에 액세스할 때, 도메인 탐색은 웹사이트가 기존의 웹사이트의 거동을 커스터마이징할 수 있다. 개발자 지정 바운더리 내부의 링크에 액세스할 때, 연관된 웹 애플리케이션의 일부로서 웹 애플리케이션 모드 브라우저에 의해 제공되는 웹 애플리케이션 창, 또는 예를 들어 사이트 또는 개발자에 의해 정의된 몇몇 다른 컨베이언스 내에서 콘텐츠가 제공 및 소비될 수 있다. 개발자 지정 바운더리 외부의 링크에 액세스할 때, 웹 애플리케이션 모드 브라우저의 외부인 기본 브라우저의 내부에서 연관된 콘텐츠가 제공 및 소비될 수 있다. 이는 도메인이 웹사이트의 확장으로서 취급되어야 할 것인지 아닌지를 웹사이트가 정할 수 있게 한다.
하나 이상의 실시예에서, 탐색 도메인은 웹 개발자에 의해 정해지며, 통합 웹사이트의 일부로서 또는 기본 브라우저의 웹 애플리케이션 모드 브라우저의 외부로서 웹 애플리케이션 모드 브라우저에 의해 콘텐츠가 표시되는 링크를 색별할 수 있다. 또한, 웹 애플리케이션 페이지의 모음을 함께 연관시키는 데 사용되는 기본 도메인 파라미터가 정해질 수 있다.
예로서, 다음 인라인 도메인 페이지 정의를 고려한다.
*contoso.crm.dynamics.com\*;*.microsoft.com\*;
이 도메인 페이지 정의는 동일한 데스크톱 웹 애플리케이션 창에 표시되는 데, 바로 아래 형태의 URI를 가능하게 할 수 있다.
sales.contoso.crm.dynamics.com\*
hr.contoso.crm.dynamics\*
*.microsoft.com\crm\
마찬가지로, 이 도메인 페이지 정의는, 링크 참조가 데스크톱 웹 애플리케이션 창 내의 페이지 내부인 경우에도, 다른 URI가 데스크톱 웹 애플리케이션 창 외부에 표시되도록 강제할 것이다.
www.bing.com
home.live.com
상기 도메인 페이지 정의에서, 웹 애플리케이션 설치 API 내부에서 와일드 카드가 이용된다. 사용자가 웹사이트에 의해 제공되는 웹사이트 통합 링크를 선택할 경우, 이 API는 일반적으로 웹사이트에 의해 호출된다. 이 API는 웹 애플리케이션 파일 또는 ".website" 파일을 데스크톱, 작업 표시줄, 시작 메뉴 또는 웹사이트 바로가기를 시작하는 데 사용될 임의의 다른 적절한 위치에서의 정보 및 컨텐츠로 채울 수 있다. 임의의 적절한 파일 확장자가 웹 애플리케이션 파일을 지정하는 데 사용될 수 있음이 이해된다. 탐색 도메인 및 다른 바운더리 정보가 .website 파일에 저장된다.
.website 파일이 시작될 경우, 탐색 도메인은 내부에서 웹 애플리케이션 모드 브라우저(111)에 의해 실행된다. 사용자가 선택하거나 웹사이트가 액세스한 링크는 와일드 카드 도메인과 매치되는 한 웹 애플리케이션 창 내부에서의 실행을 계속한다. 그러나, 정해진 탐색 도메인 외부인 웹사이트가 검출될 경우, 기본 브라우저가 예시되거나, 그렇지 않으면 사용되고, 웹사이트와 연관된 콘텐츠가 웹 애플리케이션 창의 외부 및 기본 브라우저 내부에 표시된다.
예로서, 도 2를 고려하면, a.com(202), b.com(204) 및 d.com(206)의 탐색 도메인 세트를 갖는 웹 애플리케이션 창(200)을 나타내며, 이들 도메인으로부터의 모든 페이지가 웹 애플리케이션 창(200) 내부에 표시되는 것을 내포한다. c.com(208) 또는 e.com(210)으로부터의 페이지가 웹 애플리케이션 창(200) 내로부터 액세스될 경우에, 기본 브라우저 창 내에 표시되고 웹 애플리케이션 창(200)에는 표시되지 않는다.
도 3은 300에서 하나 이상의 실시예에 따라 JavaScript API를 나타낸다. 도시된 JavaScript API는 웹사이트가 웹 애플리케이션을 클라이언트 데스크톱과 통합하는 것을 가능하게 한다. API는 웹 애플리케이션 또는 런타임 엔진에 의해 실행될 탐색 도메인을 정한다. 이 예제에서는 탐색 영역은 상술한 와일드 카드 표현을 이용하여 설명된다. 이 API는 클라이언트 디바이스에 대한 콘텐츠 및 정보로 .website 애플리케이션 파일(302)을 채우거나 업데이트하는 것을 가능하게 한다. 이들 탐색 도메인은 웹 애플리케이션이 시작될 때 실행된다.
예시된 및 설명된 실시예에서, .website 애플리케이션 파일(302)은, 웹사이트가 해당 사이트 모드 구성에 대해 정의한 정보뿐만 아니라 웹 애플리케이션 모드 브라우저 구성(들)과 연관된 정보를 포함한다. 이 정보는 웹 애플리케이션 모드 브라우저에 의해 표시되는 시작 페이지인 시작 URL, 웹사이트가 지정한 모든 탐색 도메인, 웹 애플리케이션 타이틀 및 소위 파비콘(favicon)을 포함한다. 후술하는 바와 같이, 다른 정보가 포함될 수 있다.
이하, 웹 애플리케이션이 클라이언트 측에서 시작되면, 웹 애플리케이션 모드 브라우저는 웹 애플리케이션 파일을 읽고 내부에 정의된 바운더리를 실행한다. 상술한 바와 같이, 웹 애플리케이션의 경험은 특정 웹사이트 및 그 뉘앙스에 익숙한 개발자에 의해 정의되어 있으므로, 완전하고 통합된 사용자 경험을 제공할 수 있다.
도 4는 하나 이상의 실시예에 따른 설치 방법의 단계를 설명하는 흐름도이다. 이 방법은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합에 의해 행해질 수 있다. 적어도 일부 실시예에서, 이 방법의 측면들은 클라이언트 디바이스에서 실행되는 소프트웨어에 의해 행해진다.
단계 400은 웹사이트 통합 특징을 선택한다. 이 단계는 임의의 적절한 방법으로 행해질 수 있다. 일반적으로, 이 단계는, 사용자가 수단을 선택하거나 그렇지 않으면 웹 애플리케이션 설치 프로세스를 시작할 때 행해진다. 예를 들면, 사용자는, 자신이 웹 애플리케이션을 통합할 수 있게 하는 링크를 선택할 수 있다. 이를 행할 수 있는 방법의 구체적인 예를 이하에 제공한다.
단계 402는 클라이언트 디바이스에 웹 애플리케이션 파일(여기에서 지정된 “.website ” 파일)을 생성한다. 처음에 생성되는 이 파일은 후속으로 웹사이트로부터 또는 그를 대신하여 수신된 콘텐츠 및 정보로 채워질 수 있는 아티팩트 또는 셸을 구성할 수 있다. 단계 404는 웹 애플리케이션 파일을 웹 애플리케이션 콘텐츠로 채운다. 이 단계는 임의의 적절한 방법으로 행해질 수 있다. 예를 들면, 이 단계는 JavaScript API의 이용을 통해 행해질 수 있으며, 그 예는 이상 및 이하에서 제공된다. 대체 또는 부가적으로, 이 단계는 HTML 등의 마크업의 이용을 통해 행해질 수 있다.
이하에서, 클라이언트에 웹 애플리케이션 파일을 생성하고 이를 콘텐츠로 채우고 있으며, 이하에서는 웹 애플리케이션은 시작되며 상호 작용될 수 있다.
도 5는 하나 이상의 실시예에 따른 웹 애플리케이션 상호 작용 방법의 단계를 설명하는 흐름도이다. 이 방법은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합에 의해 행해질 수 있다. 적어도 일부 실시예에서, 본 방법의 측면은 클라이언트에서 실행되는 소프트웨어 및 웹사이트를 지원하는 서버에서 실행되는 소프트웨어에 의해 행해진다. 따라서, 예를 들면 도면의 하나의 열은 “클라이언트”로 지정되어, 웹 애플리케이션 모드 브라우저에 의해 클라이언트에 의해 또는 클라이언트에서 행해지는 단계를 지정하고, 하나의 열은 "웹사이트"로 지정되어 웹사이트에 의해 또는 웹사이트를 대신하여 행해지는 단계를 지정한다.
단계 500은 사이트 모드의 사용자 선택을 받는다. 이 단계는 임의의 적절한 방법으로 행해질 수 있다. 예를 들면, 클라이언트 데스크톱에 설치된 바로가기가 사이트 모드 선택을 받는 데 이용될 수 있다. 사이트 모드의 선택을 받는 데 응답하여, 단계 502는 시작 URL을 요청한다. 시작 URL은 상술한 웹 애플리케이션 파일에서 찾을 수 있다.
단계 504는 시작 URL 요청을 접수한다. 단계 506은 시작 URL과 연관된 콘텐츠를 포함하는 연관된 웹 리소스를 클라이언트에 반환한다.
단계 508은 연관된 웹 리소스를 접수하고 및 단계 510은 웹 애플리케이션 창에 웹 리소스를 제공한다. 상술한 바와 같이, 웹 애플리케이션 창은 웹 애플리케이션 모드 브라우저에 의해 제공된다. 일부 실시예에서, 웹 애플리케이션 모드 브라우저 런타임 구성은 적어도 부분적으로 웹 애플리케이션 파일의 콘텐츠에 의해 정의된다. 하나 이상의 다른 실시예에서, 런타임 구성은 이하에서 명백해지는 바와 같이, 적어도 부분적으로 로컬 캐시 또는 캐시들과 같은 다른 위치에서 유지되는 데이터에 의해 정의될 수 있다. 단계 512는 웹 애플리케이션 창에 제공되는 리소스에 대해 사용자 상호 작용을 접수한다. 사용자 상호 작용은 어떤 적절한 유형의 사용자 상호 작용을 포함할 수 있다. 예를 들면, 사용자 상호 작용은 웹 애플리케이션 창 내로부터 비롯되는 탐색 활동을 포함할 수 있다. 단계 514는 사용자 상호 작용이 웹 애플리케이션 파일 내에서 정의된 바운더리 내에 있는지의 여부를 확인한다. 사용자 상호 작용이 웹 애플리케이션 파일에 의해 정의된 바운더리 내에 있을 경우, 단계 516은 웹 애플리케이션 창에 사용자 상호 작용과 연관된 콘텐츠를 제공한다. 한편, 사용자 상호 작용이 웹 애플리케이션 파일에 의해 정의된 바운더리 내에 없을 경우, 단계 518은 기본 웹 브라우저 내에 사용자 상호 작용과 연관된 콘텐츠를 제공한다.
이러한 방식으로, 특정 웹사이트에 대한 웹사이트 개발자에 의해 정의된 바운더리는 개발자의 필요에 따라 사용자 경험이 유지되는 것을 보장하도록 실행될 수 있다. 예를 들면, 웹사이트 정의의 시작 URL은 홈페이지이고, 웹 애플리케이션 모드에서의 홈페이지에의 후속 액세스는 사용자의 원래 정의된 브라우저 홈페이지가 아니라 시작 URL을 탐색하기 시작한다. 이것은 일부 관련없는 홈페이지를 대신하여 웹 애플리케이션 특정 페이지에의 빠른 액세스를 가능하게 한다. 이것은 최종 사용자가 제대로 동작하거나 동작하지 않을 수 있는 자신의 사이트 특정 경험을 정의해야만 하는 것을 경감한다. 따라서, 완전한, 통합된 및 지능적으로 관리된 경험이 최종 사용자에게 제공될 수 있다.
예시적 설치 및 상호 작용 경험을 설명했으며, 이하에서는 점프리스트 통합의 개념을 고려한다.
점프리스트 통합
하나 이상의 실시예에서, 개발자는 웹사이트와 상호 작용하는 데 사용될 수 있는 데스크톱 통합 동안 소위 일련의 점프리스트의 작업을 웹사이트가 정의하게 할 수 있다. 또한, 적어도 일부 실시예에서 웹사이트는 커스텀 점프리스트를 생성 및 업데이트할 수 있다.
점프리스트는 사용자에게 제시된 관련 작업 또는 콘텐츠의 세트를 구성하는 리스트로서 생각될 수 있다. 점프리스트를 통해 웹사이트는 사용자에게 관련 및 유용한 정보의 정수를 홍보할 수 있다. 점프리스트는 특정 웹 애플리케이션의 능력 또는 기능과 관련된다. 예를 들면, 이메일 애플리케이션의 점프리스트는 사용자에게 연락처를 열고 새로운 이메일 메시지 등을 생성하는 능력을 주는 작업을 포함할 수 있다. 일부 예에서, 점프리스트는 관련 및 가장 자주 사용되는 명령 및 데이터의 리스트를 포함할 수 있다.
하나 이상의 실시예에서, 점프리스트 기능은 정적 요소와 동적 요소를 모두 포함하도록 구현될 수 있다.
개발자는 상술한 바와 같이, 웹 애플리케이션 파일을 채우는 웹 애플리케이션 설치 프로세스 동안 정적 요소를 정의할 수 있다. 정적 요소와 연관된 설정은 웹 애플리케이션 파일 내부에 저장될 수 있다. 하나 이상의 실시예에서, 이 설정은 리스트 이름 및 연관된 작업을 포함할 수 있다. 적어도 일부 예에서, 정적 요소는 공통으로 사용되는 기능을 나타내는 요소를 구성할 수 있다.
동적 요소와 연관된 설정은 웹 애플리케이션 창 내부에서 실행되는 웹사이트의 페이지에 의해 구동될 수 있다. 이 설정은 사용자에게 인식할 수 있는 지표를 동적으로 노출하는 설정을 포함한다. 예를 들면, 하나의 설정은 커스텀 점프리스트에 항목을 추가할 수 있고, 하나의 설정은 오버레이 아이콘을 표시할 수 있으며, 이 예는 이하에서 제공된다. 적어도 일부 실시예에서, 동적 설정은 웹 애플리케이션이 시작될 때마다 클리어될 수 있고 웹 애플리케이션 스크립트 코드에 의해 구성될 수 있다.
일 실시예에 따른 커스텀 점프리스트의 예로서, 도 6을 고려하며, 600에서 전반적으로 클라이언트 데스크톱의 일부를 나타낸다. 커스텀 점프리스트(602)는 하나 이상의 실시예에 따라 노출된다. 여기에서, 정적 요소는 604에서 나타나며, 동적 요소는 606에서 나타난다. 이 예에서, 정적 요소 리스트 이름은 "작업"이고, 작업 또는 정적 요소는 "새로운 이메일 메시지", "새로운 약속", "새로운 연락처" 및 "새로운 작업"을 포함한다. 동적 요소 리스트 이름은 "오늘"이고, 작업 또는 동적 요소는 이 예에서 사용자의 캘린더로부터 생성된 알림을 포함한다. 동적 요소는 연관된 웹사이트에 의해 동적으로 채워진다. 따라서, 이 예에서, 동적 요소 또는 콘텐츠는 일반적으로 사용자의 동작에 독립하여, 사용자에게 알림을 제공하는 것과 연관된다.
상술한 바와 같이, 점프리스트는 데스크톱 통합 프로세스 동안에 정의될 수 있다. 작업 및 점프리스트 정의는 웹 애플리케이션 파일 내부에 저장될 수 있다. 예를 들면, 도 7을 고려하며, 700에서 하나 이상의 실시예에 따라 JavaScript API를 나타낸다. 예시된 JavaScript API는 웹사이트가 클라이언트 데스크톱과 통합되며 점프리스트를 정의 가능하게 한다. 이 JavaScript API는 “커스텀 작업” 및 “커스텀 점프리스트”의 존재를 제외하고 도 3에 대해 기술된 것과 동일한 또는 유사할 수 있다. 간략화를 위해, 도 3의 내용 중 일부는 생략되었다. 적어도 일부 실시예에서, 점프리스트 작업의 정적 리스트의 초기 생성은, 예를 들면 HTML 문서 내부에서 정의되는 HTML 태그를 이용하는 마크업에 의해 정의될 수 있다.
예를 들면, 바로 아래에서 정적 리스트 기능을 설명하도록 메타 태그를 사용하는 예를 고려한다.
<META name="msapplication-task"
content="name=Task;uri=http://marap/test3.html;icon-uri=http://marap/icon3.ico"/>
작업의 실행 시, 하나 이상의 실시예에서는, 몇 가지 옵션이 있다. 예를 들면, 작업과 연관된 URL은 현재 뷰되는 웹 페이지를 포함하는 동일한 웹 애플리케이션/브라우저 창 내에서 열릴 수 있다. 대체 또는 추가적으로, 새 페이지가 시작될 수 있다. 대체 또는 추가적으로, 새로운 팝업 창이 표시될 수 있다.
이들 파라미터가 시스템에 의해 정의 및 읽기된 후, 사용자가 자신의 데스크톱에 웹사이트를 설치할 때 후술하는 바와 같이 시작 메뉴에 추가하거나 작업 표시줄에 고정함으로써 사용될 수 있다. 동시에, 적어도 일부 실시예에서, 점프리스트에서 웹 클라이언트 코드에 의해 조작될 수 있는 동적 값의 세트가 있다.
"커스텀 작업"은 상술한 바와 같이 웹사이트에 의해 정적 작업을 정의하는 데 이용된다. 이 예에서, 정적 작업은 새로운 메시지 정적 작업이다. 이 API는 데스크톱에 .website 애플리케이션 파일(702)을 생성하고 탐색 도메인(도 3 예와 마찬가지임) 및 점프리스트와 연관된 정보 등의 다른 정보를 저장한다.
예시 및 설명된 실시예에서, .website 애플리케이션 파일(702)은 웹사이트가 해당 사이트 모드 구성을 위해 정의한 정보를 포함한다. 이 정보는 시작 URL, 웹사이트가 지정한 모든 탐색 도메인(구체적인 도시 생략), 웹 애플리케이션 제목 및 소위 파비콘을 포함한다. 다른 정보로는 상술한 새로운 메시지와 연관된 커스텀 작업 및“커스텀 리스트”를 포함한다. 이 예에서, 커스텀 리스트 요소는 웹 애플리케이션이 클라이언트에서 실행될 경우 웹사이트에 의해 동적으로 채워질 수 있는 동적 요소이다. 여기에서, "친구" 지정은 동적 콘텐츠와 연관된 헤더를 포함한다. 따라서, 이 경우에, 동적 콘텐츠는 자신의 친구가 온라인 상태일 때 사용자에게 알림을 제공하는 것과 연관된다. 여기에서, 커스텀 리스트는 웹 애플리케이션에 상주하지 않는 별개의 API이다. 그러나, 커스텀 작업은 웹 애플리케이션에 상주한다.
동작에 있어서, 정적 요소와 연관된 항목은 프리-페치되어 웹 애플리케이션이 실행되는 때를 위해 캐시될 수 있다. 한편, 동적 요소와 연관된 항목이, 웹 애플리케이션이 실행 중일 때 즉시 웹사이트에 의해 제공될 수 있다. 동적 요소와 연관된 항목이 즉시 웹 애플리케이션에 제공될 수 있는 방법의 구현예로서, 도 8을 고려한다.
도 8은 사용자가 메시지가 도착했음을 알 수 있도록 웹사이트가 동적으로 커스텀 점프리스트와 상호 작용할 수 있는 방법을 나타낸다. 이 예에서 JavaScript(800)는 웹사이트가 웹 애플리케이션 모드 브라우저에서 호스팅되는 페이지에 업데이트를 전송하는 방법을 나타낸다. 브라우저에서 실행되는 클라이언트 측 코드는 업데이트를 접수하고, 화면에 콘텐츠를 업데이트하고, 해당 리스트를 업데이트하기 위해 점프리스트에 요청을 전송하는 역할을 담당한다. 이 예에서 웹사이트는 실시간 경험을 제공하기 위해 점프리스트에 정보를 푸시할 수 있다. 여기에서 새로운 메시지, 예를 들면 New Message0 및 New Message1이 웹사이트에 의해 수신되면, 점프리스트(802)를 업데이트하기 위해 웹 애플리케이션으로부터 JavaScript 호출이 이루어질 수 있다. 적어도 일부 실시예에서, 관련 정보가 수신된 것을 사용자에게 알리기 위해 작업 표시줄(804)에 알림이 나타날 수 있다. 알림은 작업 표시줄의 임의의 적절한 위치에 나타날 수 있으며 임의의 적절한 유형의 알림을 포함할 수 있다. 예를 들면, 알림은 웹 애플리케이션과 연관된 아이콘(806)이나 그 주위에 나타날 수 있다. 대체 또는 추가적으로, 알림은 사용자의 눈을 사로잡도록 점멸할 수 있다.
예로서, 도 9를 고려한다. 거기에서, 900에서는 전반적으로 클라이언트 데스크톱의 일부가 도시되어 있다. 작업 표시줄(901)은 현재의 웹 애플리케이션과 연관된 아이콘(902)을 포함한다. 여기에서 오버레이 아이콘(904)이 아이콘(902) 내에 제공됨을 주의한다. 이 예에서, 사용자가 새로운 메시지를 수신하였고 상술한 바와 같이 웹사이트가 웹 애플리케이션 내에 호출되어 아이콘(902) 내에 오버레이 아이콘(904)이 제공되게 한다. 이것은 새로운 메시지가 도착했음을 사용자에게 알린다. 오버레이 아이콘(904)을 본 것에 응답하여, 사용자가 현재 일어나거나 일어날 약속을 지시하는 요소(908)를 노출하도록 점프리스트(905)에 액세스할 수 있다. 요소(906)도 마찬가지로 노출됨을 주의한다. JavaScript 인용부(910)는 오버레이 아이콘을 업데이트하는 데 사용될 수 있는 코드의 일례를 나타낸다.
웹사이트와 웹 애플리케이션 사이의 동적 상호 작용은 다양한 다른 방법으로 일어날 수 있다. 예를 들면, 적어도 일부 실시예에서, 웹사이트에 대한 사용자 동작에 응답하여 웹사이트로부터 점프리스트에 미리보기 창이 푸시될 수 있다. 이 예시 및 설명되는 실시예에서, 미리보기 창은 웹사이트에 의해 제공되는 소형 뷰이다. 미리보기 창은 임의의 적절한 유형의 사용자 동작에 응답하여 제공될 수 있다. 예를 들면, 적어도 일부 실시예에서, 웹사이트와 연관된 작업 표시줄 아이콘에 마우스 가져가기에 응답하여 웹사이트로부터 점프리스트에 미리보기 창이 푸시될 수 있다. 대체 또는 부가적으로, 미리보기 창은 웹 애플리케이션의 작업 표시줄 아이콘에 커서를 두고 왼쪽 클릭함으로써 제공될 수 있다.
예로서 도 10을 고려한다. 거기에서, 1000에는 클라이언트 데스크톱의 일부가 전반적으로 나타나 있다. 작업 표시줄(1001)은 현재 웹 애플리케이션과 연관된 아이콘(1002)을 포함한다. 여기에서 사용자가 아이콘(1002) 위에 커서를 두고 있음을 주의한다. 응답하여, 미리보기 창(1004)이 제공되었다. 동작에 있어서, 아이콘에 커서를 두는 사용자의 동작에 응답하여, 이벤트가 웹 페이지에 전송된다. 이벤트의 수신에 응답하여, 웹 페이지는 동적 미리보기를 제공하거나, 캐시된 미리보기 창이 제공되게 할 수 있다.
적어도 일부 실시예에서, 미리보기 창은 웹사이트에 의해 툴바 버튼 및 연관된 거동을 정의하는 데 사용될 수도 있다. 예를 들면, 예시 및 설명되는 실시예에서, 웹 애플리케이션은 매체 플레이어 애플리케이션을 포함하고, 3개의 툴바 버튼이 미리보기 창(1004)에 오버레이되는 사용자 인터페이스 수단(1006)에 나타난다. 버튼은 일시 정지 버튼, 정지 버튼, 재생 버튼을 포함한다. 적어도 일부 실시예에서, 툴바 버튼은 원격 서버와 상호 작용해야만 하는 것을 피하는 클라이언트 측 코드를 사용하여 구현될 수 있다. 예를 들면, 개별 버튼은 특정 웹 페이지에 대해 등록될 수 있다. 각 버튼이 구성되고 ID가 할당된다. 하나의 "리스너(listener)"는 모든 버튼 이벤트에 등록되어 있다. 버튼을 누를 때, 이벤트가 생성되고 이벤트가 등록된 이벤트 리스너에게 이벤트를 전파하는 브라우저에게 재통신한다. 이벤트는 눌린 버튼을 포함한다. 이 이벤트는 버튼 사이에 모호성을 해소할 수 있다.
구현예
구현예에서, 웹 개발자는 다음의 JavaScript 함수를 사용하여 점프리스트에 커스텀 리스트를 업데이트하고, 작업 표시줄 오버레이 아이콘을 업데이트한다.
리스트 생성 거동
이것은 커스텀 리스트의 제목인 리스트 이름을 정의한다. 이 값은 리스트 헤더로서 표시된다. 선택적으로, 항목의 이름을 포함하는 항목 리스트, 해당 항목의 URI값 및 해당 항목과 연관된 이미지가 처음에 리스트를 채우도록 제공될 수 있다. 이 기능은, 브라우저가 웹 애플리케이션 모드에서 시작될 때 지원될 수 있다.
리스트 업데이트 거동
리스트 항목 값이 특정 리스트 항목을 업데이트하는 데 제공된다. 리스트 항목 값은 항목에 대한 이름, 해당 항목에 대한 URI값 및 항목과 연관된 이미지를 포함한다. 이 기능은 브라우저가 웹 애플리케이션 모드에서 시작될 때 지원될 수 있다.
오버레이 아이콘 설정
기존 작업 표시줄 아이콘에 대해 오버레이로서 사용되는 아이콘을 가리키는 URI값이 지정된다. 이 기능은 브라우저가 웹 애플리케이션 모드에서 시작될 때 지원될 수 있다.
미리보기 이미지 설정
URI가 작업 표시줄 미리보기 이미지(또는 thumbbar preview)에 대한 그림 표현으로서 이용될 수 있는 이미지를 가리킨다. 사용자가 작업 표시줄 아이콘에서 마우스 왼쪽 버튼을 클릭할 경우, 미리보기가 표시된다.
오버레이 아이콘 클리어
이것은 작업 표시줄 아이콘 상의 기존의 오버레이 아이콘을 삭제한다. 이 기능은 브라우저가 웹 애플리케이션 모드에서 시작될 때 지원될 수 있다.
웹 개발자는 다음 JavaScript 함수를 사용하여, 특정 웹사이트의 작업 표시줄 미리보기 창에 표시되는 툴바 버튼의 세트를 정의 및 변경할 수 있다.
툴바 버튼 설치
버튼 ID의 리스트는 툴팁 및 이미지 URL로 지정된다. 사용자가 툴바 버튼을 선택할 경우, 이벤트가 처리를 위해 웹사이트에 보내진다. 이어서, 웹사이트는 버튼 이벤트 간의 모호성을 제거할 수 있다. 이 호출은, 버튼이 표시될 수 있도록 사이트 모드 창이 열릴 경우, 적어도 한 번 행해진다. 브라우저가 웹 애플리케이션 모드에서 개시될 때 이 기능이 지원된다.
이미지 업데이트
이는 지정된 버튼 ID의 상태 및 가시성을 식별한다. 이 상태는 이네이블 또는 디스에이블될 수 있다. 적어도 일부 실시예에서, 디폴트에 의해 버튼이 이네이블된다. 뷰는 나타나거나 숨겨질 수 있다. 디폴트에 의해 정의된 버튼을 볼 수 있다. 브라우저가 웹 애플리케이션 모드에서 개시될 때 이 기능이 지원된다.
도 11은 하나 이상의 실시예에 따른 설치 방법의 단계를 설명하는 흐름도이다. 이 방법은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합에 의해 행해질 수 있다. 적어도 일부 실시예에서, 이 방법의 측면들은 클라이언트 디바이스에서 실행되는 소프트웨어에 의해 행해진다.
단계 1100은 웹사이트 통합 특징을 선택한다. 이 단계는 임의의 적절한 방법으로 행해질 수 있다. 일반적으로, 사용자가 웹 애플리케이션의 설치 프로세스를 시작하는 수단 또는 그렇지 않으면 동작을 취할 경우 행해진다. 예를 들면, 사용자는 자신이 웹 애플리케이션을 통합하게 할 수 있는 링크를 선택할 수 있다. 이를 행할 수 있는 방법의 구체적인 예가 이하에 제공된다.
단계 1102는 클라이언트 디바이스에서 웹 애플리케이션 파일(여기에서 ".website" 파일로 지정됨)을 생성한다. 처음에 생성되는 이 파일은 후속으로 웹사이트로부터 또는 그를 대신하여 수신된 콘텐츠 및 정보로 채워질 수 있는 아티팩트 또는 셸을 구성할 수 있다. 단계 1104는 이 예에서는 점핑리스트를 포함하는 웹 애플리케이션 콘텐츠로 웹 애플리케이션 파일을 채운다. 이 단계는 임의의 적절한 방법으로 행해질 수 있다. 예를 들면, 이 단계는 JavaScript API의 이용을 통해 행해질 수 있으며, 그 예는 상술했다. 대체 또는 추가적으로, 이 단계의 측면은 HTML 등의 마크업의 사용을 통해 행해질 수 있다.
클라이언트에 웹 애플리케이션 파일을 생성하고 채웠으며, 이하에서는 웹 애플리케이션은 현재 임의의 적당한 시간에 시작될 수 있다.
도 12는 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다. 단계는 임의의 적절한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합과 관련하여 실행될 수 있다. 적어도 일부 실시예에서, 이 방법은 서버에서 실행되는 소프트웨어와 연관지어 클라이언트에서 실행되는 소프트웨어에 의해 수행될 수 있다.
단계 1200은 점프리스트와 연관된 사용자 동작을 받는다. 임의의 적절한 사용자 동작을 받을 수 있으며, 그 예를 상술했다. 예를 들면, 적어도 일부 실시예에서, 구체적으로 표시되는 점프리스트 또는 표시되지 않는 점프리스트에 대해 사용자 동작을 받을 수 있다. 대체 또는 추가적으로, 웹 애플리케이션과 연관되는 표시 아이콘에 대해 사용자 동작을 받을 수 있다. 아이콘은 예를 들면 데스크톱 작업 표시줄이나 다른 임의의 적절한 위치에서 표시될 수 있다. 이러한 동작의 예를 상술했다.
단계 1202는 사용자 동작과 연관된 콘텐츠를 제공한다. 예를 들면, 제공된 콘텐츠는 점프리스트 자체를 포함할 수 있다. 점프리스트는 임의의 적절한 유형의 사용자 동작에 응답하여 제시될 수 있으며, 그 예를 상술했다. 제공된 콘텐츠는 또한 점프리스트 자체가 아닌 콘텐츠를 포함할 수 있다. 예를 들면, 커스텀 미리보기 창은 예를 들면 작업 표시줄 아이콘을 마우스 왼쪽 클릭하는 등의 사용자 동작에 응답하여 제시될 수 있다. 예를 들면, 사용자가 새로운 이메일 메시지를 생성하거나 구성하는 것을 선택할 수 있다.
도 13은 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다. 이 방법은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합에 의해 행해질 수 있다. 적어도 일부 실시예에서, 이 방법의 측면들은 클라이언트에서 실행되는 소프트웨어 및 웹사이트를 지원하는 서버에서 실행되는 소프트웨어에 의해 행해진다. 따라서, 도면의 하나의 열이 “클라이언트”로 지정되어 클라이언트에 의해 또는 클라이언트에서 수행되는 해당 단계를 지정하고 하나의 열이 “웹사이트”로 지정되어 웹사이트에 의해 또는 웹사이트를 대신하여 행해지는 해당 단계를 지정한다.
단계 1300은 동적 점프리스트 항목과 연관된 정보를 받는다. 임의의 적절한 점프리스트 항목이 정보가 수신되는 것에 기초하여 기능할 수 있으며, 그 예를 상술했다. 단계 1302는 알림을 생성하고 단계 1304는 알림을 웹 애플리케이션을 실행하는 클라이언트 디바이스에 보낸다.
단계 1306은 알림을 수신하고 단계 1308은 사용자에게 인식 가능한 알림을 제공한다. 임의의 적절한 유형의 인식 가능한 알림을 제공할 수 있다. 예를 들면, 적어도 일부 실시예에서, 인식 가능한 알림은 오버레이 아이콘 또는 점멸 웹 애플리케이션 아이콘 등의 시각적으로 인식 가능한 알림일 수 있다. 대체 또는 추가적으로, 인식 가능한 알림은 벨 또는 부저 등의 오디오 인식 가능한 알림을 포함할 수 있다.
점프리스트 통합과 연관된 다양한 실시예를 검토했으며, 이하에서는 웹사이트가 하나 이상의 실시예에 따라 작업 표시줄 등의 데스크톱 기능에 "고정"될 수 있는 방법에 대한 논의를 고려한다.
작업 표시줄 고정
웹 애플리케이션이 클라이언트 데스크톱 또는 작업 표시줄과 통합될 수 있는 다양한 방법이 있다. 적어도 일부 실시예에서, 웹 애플리케이션은 드래그 앤드 드롭 조작을 통해 데스크톱과 통합될 수 있다. 대체 또는 추가적으로, 웹 애플리케이션은 웹 브라우저의 메뉴 선택을 통해 통합될 수 있다. 대체 또는 추가적으로, 웹 애플리케이션은 연관된 웹사이트 자체에 의해 통합될 수 있다. 이들 실시예의 각각은 다음 자신의 표제 아래에 논의된다.
드래그 앤드 드롭 조작을 통한 통합
하나 이상의 실시예에서, 웹 애플리케이션은 드래그 앤드 드롭 조작을 통해 데스크톱 또는 작업 표시줄과 통합될 수 있다. 예를 들면, 도 14를 고려한다. 거기에서, 1400에서 전반적으로 클라이언트 데스크톱이 나타나 있다. 웹 브라우저 창(1402)은 웹사이트 URL이 내부에 표시되는 주소 표시줄(1404)을 포함한다. URL과 관련하여 "파비콘"(1406)이라고 하는 아이콘이 나타나 있다. 또한, 데스크톱(1400)은 작업 표시줄(1408)을 포함한다.
도 15는 하나 이상의 실시예에 따른 드래그 앤드 드롭 조작을 개략적으로 나타낸다. 이 예에서, 커서가 파비콘(1406) 위에 위치되었다. 파비콘을 왼쪽 클릭하고 작업 표시줄(1408)을 따라 드래그함으로써, 연관된 웹 애플리케이션(이 경우에, 메시지 보드 애플리케이션)은 데스크톱의 작업 표시줄(1408)에 고정될 수 있다. 드래그 앤드 드롭 작업은 상술한 웹 애플리케이션을 통합하고, 이로써 태스크 바에 고정하는 통합 프로세스를 시작한다.
하나 이상의 실시예에서, 웹 애플리케이션과 연관된 웹페이지가 브라우저에 열린 탭을 갖는다면, 파비콘이 작업 표시줄에 드롭된 후, 연관된 탭이 브라우저의 창에서 사라질 수 있다. 대체 또는 추가적으로, 탭은 제거되지 않지만, 대신 탭의 콘텐츠는 "새 탭" 페이지로 대체될 수 있다. 브라우저 창에 단일 탭이 열려 있을 경우에, 파티콘이 작업 표시줄에 고정된 후 브라우저 창은 사라진다. 이 시점에서, 브라우저가 닫히기 전이지만 웹 애플리케이션이 고정된 후 원래의 사이트에 포함된 탭을 제거할 수 있다. 또한, 적어도 일부 실시예에서, 드래그 조작이 작업 표시줄에 들어갈 경우, "작업 표시줄에 고정"의 형태로 툴 팁이 사용자에게 고정 기능을 알리도록 제시될 수 있다.
또한, 작업 표시줄에 고정된 웹사이트 또는 웹 애플리케이션의 상태는, 웹 애플리케이션이 처음 예시될 경우 새롭게 표시되는 창에 이동될 수 있다. 이것은 사용자가 애플리케이션을 사용할 수 있도록 하기 위해 사이트에 정보를 재입력할 필요가 없게 할 수 있다.
도 16은 하나 이상의 실시예에 따른 설치 방법의 단계를 설명하는 흐름도이다. 이 방법은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합에 의해 수행될 수 있다. 적어도 일부 실시예에서, 이 방법의 측면들은 클라이언트에서 실행되는 소프트웨어에 의해 수행된다.
단계 1600은 웹 애플리케이션 설치와 연관된 드래그 앤드 드롭 조작의 지시를 받는다. 이 단계는 임의의 적절한 방법으로 행해질 수 있다. 바로 위에서 기술한 실시예에서, 사용자가 연관된 웹 애플리케이션을 데스크톱 통합하기 원함을 지시하기 위해 웹사이트와 연관된 파비콘 등의 아이콘을 사용자가 드래그 앤드 드롭할 경우에 이 단계가 수행된다. 예를 들면, 사용자는 작업 표시줄, 빠른 실행 영역이나 데스크톱 캔버스 등의 데스크톱의 일부 다른 위치에 파비콘을 드래그 앤드 드롭할 수 있다. 단계 1602는 드래그 앤드 드롭 조작에 응답하여 웹 애플리케이션 파일을 생성한다. 예시 및 기술된 실시예에서, 처음에 생성되는 웹 애플리케이션 파일은, 점프리스트 작업, 시작 URL, 파비콘 또는 정적 점프리스트 작업, 대체 시작 URL, 대체 파비콘 등의 다른 속성과 같은 연관된 웹사이트로부터의 정보를 아직 포함하지 않는 아티팩트 또는 셸이다. 이들은 상술한 바와 같이 새로운 마크업 및/또는 JavaScript API를 통해 추후에 추가될 수 있다. 그것은 JavaScript API를 채용하는 것 이외의 기술이 청구되는 내용의 사상 및 범주에서 일탈하지 않고 사용될 수 있음을 이해할 것이다.
브라우저 메뉴 선택을 통한 통합
하나 이상의 실시예에서, 웹 애플리케이션은 웹 브라우저의 메뉴 선택을 통해 통합될 수 있다. 예를 들면, 도 17을 고려한다. 거기에서, 1700에서 클라이언트 데스크톱이 전반적으로 나타나 있다. 웹 브라우저 창(1702)은 URL이 표시되는 주소 표시줄(1704)을 포함한다. 또한, 데스크톱(1700)은 작업 표시줄(1706)을 포함한다. 페이지 메뉴 형태로 브라우저 메뉴 항목(1708)이 나타나 있다. 페이지 메뉴를 드롭다운하여 메뉴 선택(1710)을 노출함으로써, 메뉴 항목 또는 선택 “Add to Start Menu”가 표시된다. 이 옵션을 선택함으로써, 웹사이트나 웹 애플리케이션은 데스크톱의 시작 메뉴에 추가될 수 있고 상술한 바와 같이 설치 프로세스가 시작될 수 있다. 대체 또는 추가적으로, "Add to Task Bar" 메뉴 항목 또는 선택이 표시되어 설치 프로세스의 시작을 가능하게 할 수 있다.
도 18은 하나 이상의 실시예에 따른 설치 방법의 단계를 설명하는 흐름도이다. 이 방법은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합에 의해 행해질 수 있다. 적어도 일부 실시예에서, 이 방법의 측면들은 클라이언트에서 실행되는 소프트웨어에 의해 수행된다.
단계 1800은 브라우저 메뉴 선택을 받는다. 이 단계는 임의의 적절한 방법으로 행해질 수 있다. 바로 위에서 설명한 실시예에서, 이 단계는, 사용자가 특정 웹사이트를 탐색하고, 브라우저 메뉴를 드롭다운해서 메뉴 선택을 노출하고 웹사이트와 연관된 웹 애플리케이션의 설치의 시작과 연관된 메뉴 항목을 선택함으로써 동작을 취할 경우에 행해진다.
단계 1802는 브라우저 메뉴 선택을 받는 것에 응답하여 웹 애플리케이션 파일을 생성한다. 예시 및 설명된 실시예에서, 처음에 생성되는 웹 애플리케이션 파일은, 점프리스트 작업, 시작 URL, 파비콘 등과 같은 연관된 웹사이트로부터의 정보를 아직 포함하지 않은 아티팩트 또는 셸이다. 이들은 상술한 바와 같이 새로운 마크업 및/또는 JavaScript API를 통해 추후에 추가될 수 있다. 청구되는 내용의 사상 및 범주에서 벗어나지 않고 JavaScript API를 채용하는 것 이외의 다른 기술이 사용될 수 있음을 이해할 것이다.
연관된 웹사이트를 통한 통합
하나 이상의 실시예에서, 웹 애플리케이션과 데스크톱의 통합은 웹 페이지로부터 일어날 수 있다. 이들 실시예에서, 특정 웹사이트가 데스크톱에 웹 애플리케이션을 통합하기 위해 JavaScript 등의 코드를 사용함으로써 통합 활동을 선택할 수 있다. 이것은 웹사이트가 통합 개시 수단을 제어할 수 있게 하고 있다.
예로서, 도 19를 고려한다. 거기에서, 1900에서 클라이언트 데스크톱이 전반적으로 나타나 있다. 웹 브라우저 창(1902)은 URL이 내부에 표시되는 주소 표시줄(1904)을 포함한다. 또한, 데스크톱(1900)은 작업 표시줄(1906)을 포함한다. 또한, 브라우저 창(1902)에 표시되는 웹 페이지는 "Add to Desktop"이라는 제목의 링크(1908)를 포함한다. 이 링크를 클릭함으로써, 사용자는 상술한 바와 같이 웹 애플리케이션 설치 프로세스를 개시할 수 있다.
적어도 일부 실시예에서, 링크 선택이 일어난 후에, 사용자가 취하는 사용자 동작 및 새롭게 생성된 바로가기에 액세스하는 개소를 설명하는 모달 확인 대화 상자가 제시될 수 있다. 이 확인 대화 상자는 사용자에게 제시되는 페이지의 소스 URL을 제시할 수 있다. 표시되는 URL은 웹사이트의 전체 경로를 포함할 수 있다. 이를 통해 사용자들은 설치하려는 웹사이트가 올바른 사이트로부터 제공되는 것임을 확인할 수 있다. 이것은 악의적인 하위 디렉토리와 연관된 상황을 완화할 수 있다.
다양한 구현예에서, 데스크톱과 통합되는 웹사이트의 URL을 검사하여 그것을 포함하는 웹 페이지와 동일한 도메인에 있는지를 확인한다. 그렇지 않다면, 에러가 표시될 수 있고 작업이 실패할 수 있다. 사용자가 작업을 확인한 후, 대화 상자가 제거될 수 있으며, 웹 애플리케이션 창이 올바른 URL을 가지고 표시될 수 있다.
도 20은 하나 이상의 실시예에 따른 설치 방법의 단계를 설명하는 흐름도이다. 방법은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합에 의해 행해질 수 있다. 적어도 일부 실시예에서, 이 방법의 측면들은 클라이언트에서 실행되는 소프트웨어에 의해 수행된다.
단계 2000은 통합 링크를 갖는 웹 페이지를 표시한다. 이 단계는 임의의 적절한 방법으로 행해질 수 있으며, 그 예는 상술했다. 단계 2002는 통합 링크의 선택을 받는다. 단계 2004는 링크 선택을 받는 것에 응답하여 웹 애플리케이션 파일을 생성한다. 예시 및 설명한 실시예에서, 처음에 생성되는 웹 애플리케이션 파일은, 점프리스트 작업, 시작 URL, 파비콘 등과 같은 연관된 웹사이트로부터의 정보를 아직 포함하지 않은 아티팩트 또는 셸이다. 이들은 상술한 바와 같이 새로운 마크업 및/또는 JavaScript API를 통해 추후에 추가될 수 있다. 청구되는 내용의 사상 및 범주에서 벗어나지 않고 JavaScript API를 채용하는 것 이외의 다른 기술이 사용될 수 있음을 이해할 것이다.
앞서 다양한 실시예를 설명하였으며, 이제 개발자 및 웹사이트가 점프리스트 작업 또는 항목으로부터 액세스되는 콘텐츠를 포함하는 콘텐츠를 클라이언트 디바이스 상에 표면화시키는 방식을 정의할 수 있는 실시예들을 설명한다. 전술한 바와 같이, 콘텐츠는 다양한 콘텐츠 컨베이언스를 통해 표면화될 수 있다. 예를 들어, 콘텐츠는 탭, 팝업 창, 브라우저 창, 인플레이스 탐색을 사용하여, 또는 페이지 내, 프레임 또는 다른 요소 내와 같은 상이한 레벨에서 표면화될 수 있다. 또한, 콘텐츠는, HTML 마크업과 같은 선언형 방식 및/또는 예컨대 Javascript를 이용한 스크립트 기반 방식을 이용하는 메카니즘과 같은 다양한 표면화 메카니즘을 사용하여 표면화될 수 있다.
이하에서 설명되는 실시예들은 전술한 실시예들의 전부 및/또는 임의의 실시예와 연계하여 이용될 수 있음이 이해된다.
콘텐츠가 표면화되는 방식을 메타태그를 이용하여 정의
하나 이상의 실시예에서, 콘텐츠가 클라이언트 디바이스 상에서 표면화되는 방식을 정의하는데 메타태그가 이용될 수 있다. 이 메타태그는 시작 URL과 연관된 웹페이지 또는 특정 웹사이트와 연관된 몇몇 다른 웹 페이지를 포함하는 HTML의 일부로서 포함될 수 있다. 메타태그는 점프 리스트에서 표면화될 경험의 유형의 정의하는데 이용될 수 있다. 메타태그는 추가의 속성, 예를 들어 콘텐츠를 사용자에게 전달하는데 사용되는 가시적 컨베이언스의 유형 및/또는 그의 크기를 정의하는 창 파라미터 및 그 밖의 다른 연관된 파라미터를 기술하는데 사용된다.
하나 이상의 실시예에 따른 특정 메타태그의 예들로서, 다음을 고려해본다.
점프 리스트 선택과 연관된 새로운 탭을 열기 위해, 아래와 같은 메타태그가 사용될 수 있다.
Figure pct00001
이 메타태그는 웹 애플리케이션 모드 브라우저가 수신된 사용자 동작과 연관된 대응하는 탭을 열수 있도록 해준다. 웹 애플리케이션 모드 브라우저는, 메타태그에 포함된 정보를 예를 들어 운영 체제 또는 다른 시스템 컴포넌트 상에서 행할 수 있는 적절한 "창 열기" 요청에 전달함으로써 이를 수행한다. 예를 들어, 사용자는 정적 점프리스트 작업을 선택할 수 있다. 이 메타태그 포맷은 점프리스트 선택과 연관된 탭을 열 것을 웹 애플리케이션 모드 브라우저에게 지시할 수 있다. 창 유형은 사이트 정보가 디스플레이될 창의 유형을 포함한다는 것을 유의한다.
점프 리스트 선택과 연관된 풀 브라우저 창을 열기 위해, 아래의 메타태그가 사용될 수 있다.
Figure pct00002
이 메타태그는 웹 애플리케이션 모드 브라우저가 수신된 사용자 동작과 연관된 대응하는 풀 브라우저 창을 열 수 있도록 해준다. 웹 애플리케이션 모드 브라우저는, 메타태그에 포함된 정보를 예를 들어 운영 체제 또는 다른 시스템 컴포넌트 상에서 행할 수 있는 적절한 "창 열기" 요청에 전달함으로써 이를 수행한다. 예를 들어, 사용자는 점프리스트 작업을 선택할 수 있다. 이 메타태그 포맷은 점프리스트 선택과 연관된 풀 브라우저 창을 열 것을 웹 애플리케이션 모드 브라우저에게 지시할 수 있다. 창 유형은 사이트 정보가 디스플레이될 창의 유형을 포함한다는 것을 유의한다.
새로운 콘텐츠를 갖는 현재 창에서 제공되고 있는 인플레이스 및 리플레이스 콘텐츠(in place and replace content)를 탐색하기 위해, 아래의 메타태그가 사용될 수 있다.
Figure pct00003
이 메타태그는 웹 애플리케이션 모드 브라우저가 수신된 사용자 동작과 연관된 인플레이스 탐색을 수행할 수 있도록 해준다. 웹 애플리케이션 모드 브라우저는, 메타태그에 포함된 정보를 예를 들어 운영 체제 또는 다른 시스템 컴포넌트 상에서 행할 수 있는 적절한 "창 열기" 요청에 전달함으로써 이를 수행한다. 예를 들어, 사용자는 그들의 웹 애플리케이션에서 새로운 무선국을 여는 것과 연관된 점프리스트 작업을 선택할 수 있다. 이 메타태그 포맷은 점프리스트 선택과 연관된 인플레이스 탐색을 수행할 것을 웹 애플리케이션 모드 브라우저에게 지시할 수 있다. 창 유형은 사이트 정보가 디스플레이될 창의 유형을 포함한다는 것을 유의한다.
팝업 창을 열기 위해, 아래의 메타태그가 사용될 수 있다.
Figure pct00004
이 메타태그는 웹 애플리케이션 모드 브라우저가 수신된 사용자 동작과 연관된 팝업 창을 열 수 있도록 해준다. 웹 애플리케이션 모드 브라우저는, 메타태그에 포함된 정보를 예를 들어 운영 체제 또는 다른 시스템 컴포넌트 상에서 행할 수 있는 적절한 "창 열기" 요청에 전달함으로써 이를 수행한다. 예를 들어, 사용자는 새로운 이메일 메시지를 여는 것과 연관된 점프리스트 작업을 선택할 수 있다. 이 메타태그 포맷은 점프리스트 선택과 연관된 새로운 이메일 메시지 인터페이스를 열 것을 웹 애플리케이션 모드 브라우저에게 지시할 수 있다. 창 유형은 사이트 정보가 디스플레이될 창의 유형을 포함한다는 것을 유의한다. 또한, 이 예에서, 메타태그는 열리게 되는 팝업 창의 크기와 같은 다른 파라미터를 포함한다.
적어도 몇몇 실시예에서, 개발자는, 사이트가 고정된 이후 작업 표시줄로부터 직접 개시되는 시작 창은 디폴트 브라우저 창 또는 커스텀 팝업 창에서 열릴 수 있음을 명시할 수 있다. 이는 아래에 도시된 메타태그를 이용하여 가능해질 수 있다.
Figure pct00005
위의 방식은 일반적으로 특성상 정적인 점프리스트 작업, 및 특성상 보다 동적인 점프리스트 항목 모두에 사용될 수 있다.
다양한 메타태그에 포함된 정보는 임의의 적절한 위치에 저장될 수 있다. 예를 들어, 적어도 일부 실시예에서, 정보는 사이트가 전술한 바와 같이 고정되는 경우 .website 파일 내에 저장될 수 있다. 이와 달리 또는 이에 부가하여, 정보는 예를 들어 사이트가 전술한 바와 같이 고정되는 경우 클라이언트 디바이스와 연관된 하나 이상의 캐시 또는 저장소에 저장될 수 있다.
예를 들어, 적어도 일부 실시예에서, 이 정보는 웹 브라우저와 연관된 히스토리 캐시 저장소에 저장될 수 있다. 이와 달리 또는 이에 부가하여, 정보는 웹 애플리케이션 모드 브라우저와 연관된 내부 저장소에 저장될 수 있다. 저장소에 정보를 저장함으로써 웹 애플리케이션은 점프 리스트로부터 직접 개시되는 바와 같이 시작 URL로부터 시작되지 않는 경우 적절한 구성 정보를 이용하여 시작될 수 있다. 예를 들어, 사용자는 점프리스트 항목 선택으로부터 웹 애플리케이션을 시작할 수 있다. 이 경우, 정보는 내부 캐시로부터 인출될 수 있고 사용자에게 콘텐츠를 표면화하는데 적절히 정의된 컨베이언스가 사용되도록 보장하는데 사용될 수 있다.
콘텐츠가 표면화되는 방식을 스크립트를 사용하여 정의
하나 이상의 실시예에서, 전술한 메타태그 방식에 추가하여, 또는 그와 달리, 스크립트를 사용하여 콘텐츠가 표면화되는 방식을 정의할 수 있다. 본원의 사상을 벗어나지 않고서 임의의 적절한 스크립트 또는 코드 기반 방식이 사용될 수 있다. 적어도 일부 실시예에서, JavaScript가 사용되어 콘텐츠가 클라이언트 디바이스 상에 표면화되는 방식을 정의할 수 있다. JavaScript API는 웹 애플리케이션 모드 브라우저가 사용자에게 콘텐츠를 제공하게 되는 특정 창를 열 수 있도록 해주는 정보를 제공하기 위해 웹사이트에 의해 호출될 수 있다. JavaScript의 사용은 예를 들어 점프리스트 항목과 연관된 경우와 같이 동적인 시나리오에서 특히 유용하다.
JavaScript가 사용될 수 있는 방식에 대한 일 예로서, 다음을 고려할 수 있다.
점프리스트 선택과 연관된 새로운 탭을 열기 위해, 아래와 같은 JavaScript API가 사용될 수 있다.
Figure pct00006
이 JavaScript는 웹 애플리케이션 모드 브라우저가 수신된 사용자 동작과 연관된 대응하는 창을 열 수 있도록 해준다. 웹 애플리케이션 모드 브라우저는, JavaScript 호출에 포함된 정보를 예를 들어 운영 체제 또는 다른 시스템 컴포넌트 상에서 행할 수 있는 적절한 "창 열기" 요청에 전달함으로써 이를 수행한다. 마지막 파라미터는 사이트 정보가 디스플레이될 창의 유형을 포함한다는 것을 유의한다.
점프 리스트 선택과 연관된 풀 브라우저 창을 열기 위해, 아래의 JavaScript API가 사용될 수 있다.
Figure pct00007
이 JavaScript는 웹 애플리케이션 모드 브라우저가 수신된 사용자 동작과 연관된 대응하는 풀 브라우저 창을 열 수 있도록 해준다. 웹 애플리케이션 모드 브라우저는, JavaScript 호출에 포함된 정보를 예를 들어 운영 체제 또는 다른 시스템 컴포넌트 상에서 행할 수 있는 적절한 "창 열기" 요청에 전달함으로써 이를 수행한다. 마지막 파라미터는 사이트 정보가 디스플레이될 창의 유형을 포함한다는 것을 유의한다.
새로운 콘텐츠를 갖는 현재 창에서 제공되고 있는 인플레이스 및 리플레이스 콘텐츠(in place and replace content)를 탐색하기 위해, 아래의 JavaScript가 사용될 수 있다.
Figure pct00008
이 JavaScript는 웹 애플리케이션 모드 브라우저가 수신된 사용자 동작과 연관된 인플레이스 탐색을 수행할 수 있도록 해준다. 웹 애플리케이션 모드 브라우저는, JavaScript 호출에 포함된 정보를 예를 들어 운영 체제 또는 다른 시스템 컴포넌트 상에서 행할 수 있는 적절한 "창 열기" 요청에 전달함으로써 이를 수행한다. 마지막 파라미터는 사이트 정보가 디스플레이될 창의 유형을 포함한다는 것을 유의한다.
도 21은 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다. 이 방법은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합에 의해 수행될 수 있다. 적어도 일부 실시예에서, 이 방법의 측면들은 적절히 구성된 웹 애플리케이션 모드 브라우저와 같은 클라이언트 상에서 실행되는 소프트웨어에 의해 수행된다.
단계 2100은 클라이언트 디바이스 상에서 웹 애플리케이션을 시작한다. 이것이 수행되는 방식에 대한 예는 위에 제공되어 있다. 하나 이상의 실시예에서, 웹 애플리케이션은 클라이언트 디바이스 상에서 전술한 바와 같이 구성된다. 예를 들어, 웹 애플리케이션은 클라이언트 디바이스 상에, 예를 들어 작업 표시줄, 시작 메뉴 또는 데스크톱에 고정될 수 있다. 단계 2102는 연관된 클라이언트 디바이스 상에 콘텐츠를 제공하기 위한 사이트 특정 컨베이언스(site-specified conveyance)를 확인한다. 컨베이언스의 유형은 임의의 적절한 방식으로 지정될 수 있다. 예를 들어, 적어도 일부 실시예에서, 사이트 특정 컨베이언스는 예를 들어 HTML과 같은 마크업을 사용하는 것과 같이 선언형 방식으로 지정될 수 있다. 이와 달리 또는 이에 추가하여, 사이트 특정 컨베이언스는 JavaScript와 같은 스크립트의 사용에 특정될 수 있다. 단계 2104는 사이트 특정 컨베이언스를 사용하여 콘텐츠를 제공한다.
다양한 웹 애플리케이션 통합 기술을 고려했으며, 이하에서는 상술한 실시예 중 하나 이상을 구현하는 데 사용될 수 있는 예시적인 시스템을 고려한다.
예시적 시스템
도 22는 상술한 다양한 실시예를 구현하는 데 사용될 수 있는 예시적 컴퓨팅 디바이스(2200)를 나타낸다. 컴퓨팅 디바이스(2200)는, 예를 들면 도 1의 컴퓨팅 디바이스(102) 또는 임의의 다른 적절한 컴퓨팅 디바이스일 수 있다.
컴퓨팅 디바이스(2200)는 하나 이상의 프로세서 또는 처리 유닛(2202), 하나 이상의 메모리 및/또는 저장 구성 요소(2204), 하나 이상의 입력/출력(I/O) 디바이스(2206) 및 다양한 구성 요소 및 디바이스가 서로 통신할 수 있게 하는 버스(2208)를 포함한다. 버스(2208)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 가속 그래픽 포트 및 프로세서 또는 다양한 버스 아키텍처 중 하나를 사용하는 로컬 버스를 포함하는 임의의 복수의 유형의 버스 구조 중 하나 이상을 나타낸다. 버스(2208)는 유선 및/또는 무선 버스를 포함할 수 있다.
메모리/저장 구성 요소(2204)는 하나 이상의 컴퓨터 저장 매체를 나타낸다. 구성 요소(2204)는 휘발성 매체(RAM 등) 및/또는 비휘발성 매체(ROM, 플래시 메모리, 광디스크, 자기 디스크 등)를 포함할 수 있다. 구성 요소(2204)는 고정된 매체(예를 들면, RAM, ROM, 고정식 하드 디스크 드라이브 등)뿐만 아니라 이동식 매체(예를 들면, 플래시 메모리 드라이브, 이동식 하드 드라이브, 광디스크 등)를 포함할 수 있다.
하나 이상의 입력/출력 디바이스(2206)는 사용자가 컴퓨팅 디바이스(2200)에 명령 및 정보를 입력하게 할 수 있으며, 또한 정보가 사용자 및/또는 다른 구성 요소 또는 디바이스에 제공되는 것을 가능하게 한다. 입력 디바이스의 예는 키보드, 커서 제어 디바이스(예를 들면, 마우스), 마이크로폰, 스캐너 등을 포함한다. 출력 디바이스의 예는 디스플레이 디바이스(예를 들면, 모니터 또는 프로젝터), 스피커, 프린터, 네트워크 카드 등을 포함한다.
본원에서는 다양한 기술이 소프트웨어 또는 프로그램 모듈의 일반적인 맥락에서 설명될 수 있다. 일반적으로, 소프트웨어는 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 구성 요소, 데이터 구조 등을 포함한다. 이러한 모듈 및 기술의 구현은 일부 형태의 컴퓨터 판독 가능한 매체를 통해 저장되거나 전달될 수 있다. 컴퓨터 판독 가능한 매체는 컴퓨팅 디바이스에 의해 액세스될 수 있는 임의의 사용 가능한 매체 또는 매체들일 수 있다. 제한이 아닌 예로서, 컴퓨터 판독 가능 매체는 "컴퓨터 판독 가능한 저장 매체"를 포함할 수 있다.
"컴퓨터 판독 가능한 저장 매체"는 컴퓨터 판독 가능한 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터 등의 정보를 기억하기 위해 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 판독 가능한 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스 또는 원하는 정보를 저장하는 데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 한정되는 것은 아니다.
결론
다양한 실시예는 최종 사용자가 자신의 데스크톱에 웹 애플리케이션 및 웹사이트를 설치할 수 있게 하는 메커니즘을 제공한다. 하나 이상의 실시예에 따르면, 클라이언트 측 코드는 웹사이트와 연관된 개발자가 사용자 상호 작용과 연관된 바운더리를 정하게 할 수 있는 데 이용될 수 있고 그 바운더리가 런타임 엔진에 의해 실행되게 하는 데 이용될 수 있다. 적어도 일부 실시예에서, 개발자는 JavaScript 코드를 통해 시작 메뉴 바로가기, 탐색 및 소위 점프리스트뿐만 아니라, 다양한 다른 기능의 생성을 위해 다양한 구성을 제공할 수 있다.
다양한 실시예는 사이트 개발자가 점프리스트 작업 또는 항목으로부터 액세스되는 콘텐츠를 포함하는 콘텐츠를 클라이언트 디바이스 상에 표면화시키는 방식을 정의할 수 있도록 해준다. 콘텐츠는 다양한 콘텐츠 컨베이언스를 통해 표면화될 수 있다. 예를 들어, 콘텐츠는 탭, 팝업 창, 브라우저 창, 인플레이스 탐색을 사용하여, 또는 페이지 내, 프레임 또는 다른 요소 내와 같은 상이한 레벨에서 표면화될 수 있다. 또한, 콘텐츠는, HTML 마크업과 같은 선언형 방식 및/또는 예컨대 Javascript를 이용한 스크립트 기반 방식을 이용하는 메카니즘과 같은 다양한 표면화 메카니즘을 사용하여 표면화될 수 있다.
구조적 특징 및/또는 방법론적 동작에 특정된 언어로 내용을 설명했지만, 첨부된 특허청구범위에서 정의된 내용이 반드시 상술한 특정 특징 또는 동작으로 제한되지 않음을 이해할 것이다. 오히려, 상술한 특정 특징 및 동작은 특허청구범위를 구현하는 예시적인 형태로서 개시되어 있다.

Claims (10)

  1. 클라이언트 디바이스 상에서 웹 애플리케이션을 시작하는 단계- 상기 웹 애플리케이션은 상기 클라이언트 디바이스 상에 고정됨(pinned) -;
    상기 클라이언트 디바이스에 콘텐츠를 제공하기 위한 사이트 특정 컨베이언스(site-specified conveyance)를 확인하는 단계; 및
    상기 사이트 특정 컨베이언스를 사용하여 콘텐츠를 제공하는 단계를 포함하는, 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 웹 애플리케이션은 상기 클라이언트 디바이스와 연관된 작업 표시줄 상에 고정되는, 컴퓨터 구현 방법.
  3. 제 1 항에 있어서,
    상기 확인하는 단계는 사이트에 의해 제공된 웹페이지와 연관된 하나 이상의 메타태그를 통해 상기 사이트 특정 컨베이언스를 확인함으로써 수행되는, 컴퓨터 구현 방법.
  4. 제 1 항에 있어서,
    상기 확인하는 단계는 사이트가 상기 컨베이언스를 특정할 수 있는 JavaScript를 통해 상기 사이트 특정 컨베이언스를 확인함으로써 수행되는, 컴퓨터 구현 방법.
  5. 제 1 항에 있어서,
    상기 사이트 특정 컨베이언스는 팝업 창을 포함하는, 컴퓨터 구현 방법.
  6. 제 1 항에 있어서,
    상기 사이트 특정 컨베이언스는 탭, 브라우저 창, 또는 인플레이스 탐색(in-place navigation)을 포함한 그룹으로부터 선택된 컨베이언스를 포함하는, 컴퓨터 구현 방법.
  7. 컴퓨터 판독가능 명령어들을 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 판독가능 명령어들은 실행되는 경우,
    점프리스트와의 상호작용에 응답하여, 클라이언트 디바이스에 콘텐츠를 제공하기 위한 사이트 특정 컨베이언스를 확인하고,
    상기 사이트 특정 컨베이언스를 사용하여 웹 애플리케이션 내에 콘텐츠를 제공하도록 구성된
    웹 애플리케이션 모드 브라우저를 구현하는, 컴퓨터 판독가능 저장 매체.
  8. 제 7 항에 있어서,
    상기 상호작용은 점프리스트 작업 또는 항목과의 상호작용을 포함하는, 컴퓨터 판독가능 저장 매체.
  9. 제 7 항에 있어서,
    상기 확인은 사이트에 의해 제공된 웹페이지와 연관된 하나 이상의 메타태그를 통해 상기 사이트 특정 컨베이언스를 확인함으로써 수행되는, 컴퓨터 판독가능 저장 매체.
  10. 제 7 항에 있어서,
    상기 확인은 사이트가 상기 컨베이언스를 특정할 수 있는 스크립트를 통해 상기 사이트 특정 컨베이언스를 확인함으로써 수행되는, 컴퓨터 판독가능 저장 매체.
KR1020137016310A 2010-12-23 2011-12-23 점프리스트 작업 및 항목으로부터 액세스되는 콘텐츠를 포함하는 콘텐츠의 표면화 KR20130143616A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/977,668 US20120166959A1 (en) 2010-12-23 2010-12-23 Surfacing content including content accessed from jump list tasks and items
US12/977,668 2010-12-23
PCT/US2011/067077 WO2012088487A2 (en) 2010-12-23 2011-12-23 Surfacing content including content accessed from jump list tasks and items

Publications (1)

Publication Number Publication Date
KR20130143616A true KR20130143616A (ko) 2013-12-31

Family

ID=46314963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137016310A KR20130143616A (ko) 2010-12-23 2011-12-23 점프리스트 작업 및 항목으로부터 액세스되는 콘텐츠를 포함하는 콘텐츠의 표면화

Country Status (6)

Country Link
US (1) US20120166959A1 (ko)
EP (1) EP2656302A4 (ko)
JP (1) JP2014503911A (ko)
KR (1) KR20130143616A (ko)
CN (1) CN102591928A (ko)
WO (1) WO2012088487A2 (ko)

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678624B2 (en) 2011-09-27 2017-06-13 Z124 Unified desktop triad control user interface for a phone manager
US8990713B2 (en) 2011-09-27 2015-03-24 Z124 Unified desktop triad control user interface for an application manager
US9529494B2 (en) * 2011-09-27 2016-12-27 Z124 Unified desktop triad control user interface for a browser
US8990712B2 (en) 2011-08-24 2015-03-24 Z124 Unified desktop triad control user interface for file manager
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8689132B2 (en) 2007-01-07 2014-04-01 Apple Inc. Portable electronic device, method, and graphical user interface for displaying electronic documents and lists
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US20090199133A1 (en) * 2008-02-05 2009-08-06 Microsoft Corporation Generating a destination list utilizing usage data
US9612847B2 (en) 2008-02-05 2017-04-04 Microsoft Technology Licensing, Llc Destination list associated with an application launcher
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US10241644B2 (en) * 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
WO2011160139A1 (en) * 2010-06-18 2011-12-22 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
US9563351B2 (en) * 2011-03-14 2017-02-07 Apple Inc. Device, method, and graphical user interface for navigating between document sections
US9201709B2 (en) * 2011-05-20 2015-12-01 Citrix Systems, Inc. Shell integration for an application executing remotely on a server
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US20160124698A1 (en) 2011-08-24 2016-05-05 Z124 Unified desktop triad control user interface for an application launcher
US20130067338A1 (en) * 2011-09-14 2013-03-14 Microsoft Corporation Dynamic navigation region based on site usage
US9703468B2 (en) 2011-09-27 2017-07-11 Z124 Unified desktop independent focus in an application manager
US8661328B2 (en) * 2011-12-15 2014-02-25 Sap Portals Israel Ltd Managing web content on a mobile communication device
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US8775917B2 (en) 2012-08-09 2014-07-08 Sweetlabs, Inc. Systems and methods for alert management
US8775925B2 (en) 2012-08-28 2014-07-08 Sweetlabs, Inc. Systems and methods for hosted applications
US9081757B2 (en) 2012-08-28 2015-07-14 Sweetlabs, Inc Systems and methods for tracking and updating hosted applications
US9069735B2 (en) 2012-10-15 2015-06-30 Sweetlabs, Inc. Systems and methods for integrated application platforms
KR20230137475A (ko) 2013-02-07 2023-10-04 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
WO2015020942A1 (en) 2013-08-06 2015-02-12 Apple Inc. Auto-activating smart responses based on activities from remote devices
CN103606074A (zh) * 2013-11-07 2014-02-26 北京奇虎科技有限公司 一种邮件内容的加载方法、装置和浏览器
US9749440B2 (en) 2013-12-31 2017-08-29 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
US10019247B2 (en) 2014-05-15 2018-07-10 Sweetlabs, Inc. Systems and methods for application installation platforms
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
EP3149728B1 (en) 2014-05-30 2019-01-16 Apple Inc. Multi-command single utterance input method
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
CN106445479B (zh) * 2015-08-12 2019-06-28 阿里巴巴集团控股有限公司 信息推送方法及装置
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
CN106777256A (zh) * 2016-12-28 2017-05-31 四川秘无痕信息安全技术有限责任公司 一种快速提取Windows中跳转列表文件数据的方法
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10409634B2 (en) * 2017-04-19 2019-09-10 Microsoft Technology Licensing, Llc Surfacing task-related applications in a heterogeneous tab environment
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
US11023558B1 (en) * 2020-04-03 2021-06-01 International Business Machines Corporation Executing functions on-demand on a server utilizing web browsers
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
JP2022111638A (ja) * 2021-01-20 2022-08-01 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269585B1 (en) * 1998-06-26 2007-09-11 Alexander James Burke User interface and search system for local and remote internet and other applications
JP2004178512A (ja) * 2002-11-29 2004-06-24 Nippon Telegr & Teleph Corp <Ntt> リンク先コンテンツ閲覧支援装置、リンク先コンテンツ閲覧支援方法及びプログラム並びに記録媒体
US7296230B2 (en) * 2002-11-29 2007-11-13 Nippon Telegraph And Telephone Corporation Linked contents browsing support device, linked contents continuous browsing support device, and method and program therefor, and recording medium therewith
JP3749713B2 (ja) * 2003-02-27 2006-03-01 株式会社エヌ・ティ・ティ・ドコモ 移動端末、移動端末制御方法および移動端末制御プログラム
US7590631B2 (en) * 2004-09-02 2009-09-15 Hewlett-Packard Development Company, L.P. System and method for guiding navigation through a hypertext system
US20070211071A1 (en) * 2005-12-20 2007-09-13 Benjamin Slotznick Method and apparatus for interacting with a visually displayed document on a screen reader
US8732007B2 (en) * 2008-11-21 2014-05-20 Stubhub, Inc. System and methods for providing location-based upcoming event information using a client-side web application implemented on a client device
US20080301562A1 (en) * 2007-04-27 2008-12-04 Josef Berger Systems and Methods for Accelerating Access to Web Resources by Linking Browsers
US8458612B2 (en) * 2007-07-29 2013-06-04 Hewlett-Packard Development Company, L.P. Application management framework for web applications
US20090125331A1 (en) * 2007-09-13 2009-05-14 H. Lundbeck A/S Methods and systems for treating illnesses
US7925988B2 (en) * 2007-11-13 2011-04-12 International Business Machines Corporation System and method for providing sticky applications
US9612847B2 (en) * 2008-02-05 2017-04-04 Microsoft Technology Licensing, Llc Destination list associated with an application launcher
US9779176B2 (en) * 2008-04-02 2017-10-03 International Business Machines Corporation Accessing external functionality within a component-based web application
US7877461B1 (en) * 2008-06-30 2011-01-25 Google Inc. System and method for adding dynamic information to digitally signed mobile applications

Also Published As

Publication number Publication date
EP2656302A2 (en) 2013-10-30
EP2656302A4 (en) 2016-06-22
CN102591928A (zh) 2012-07-18
WO2012088487A3 (en) 2012-11-29
WO2012088487A2 (en) 2012-06-28
US20120166959A1 (en) 2012-06-28
JP2014503911A (ja) 2014-02-13

Similar Documents

Publication Publication Date Title
US10140107B2 (en) Dynamic web application notifications including task bar overlays
KR20130143616A (ko) 점프리스트 작업 및 항목으로부터 액세스되는 콘텐츠를 포함하는 콘텐츠의 표면화
US9021469B2 (en) Web application pinning including task bar pinning
KR101915331B1 (ko) 작업 표시줄 고정을 포함하는 개인 고정 및 점프리스트 작업 및 항목 시작 기법
JP5830088B2 (ja) ウェブアプリケーションホームボタン
US8434135B2 (en) Creating and launching a web application with credentials
US9164671B2 (en) Web application navigation domains
EP2580679B1 (en) Web application transitioning and transient web applications
US8429546B2 (en) Creating task sessions
US20110307810A1 (en) List integration

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right