專利名稱:Web應用轉換和暫時性web應用的制作方法
WEB應用轉換和暫時性WEB應用背景技術
近來,業界已經開始關注于將web應用或網站與用戶的計算機桌面環境或“桌面” 整合在一起的概念。然而,與之相關的挑戰也是存在的。例如,對于網站而言,現今很難為了桌面整合的目的來定義它們的站點的邊界。由此,所述邊界交由終端用戶通過他們自己開發的客戶端腳本去定義。由于終端用戶未必知道如何構造特定網站,因此,這樣做有可能會存在問題。舉個例子,終端用戶未必知道網站用以向用戶提供功能的web屬性之間的所有聯系、關聯或者其他細微差別。相應地,終端用戶的腳本未必了解這些聯系或細微差別, 由此可能導致產生非預期或破損的用戶體驗。
此外,用戶現今還面臨著所謂的雙重導入(boot)問題。特別地,用戶不得不導入其個人計算機,開啟其瀏覽器,以及最終啟動其希望工作時所處的特定web應用。這個問題因為如下事實而變得更嚴重瀏覽器能夠為用戶提供過多分散注意力的事物(例如在瀏覽器的系統窗口控件(chrome)中出現的那些)以及不允許用戶只專注于手頭與web應用相關聯的特定任務。發明內容
本發明內容部分是為了以簡化形式引入精選概念而被提供的,在以下的具體實施方式
部分中將會進一步描述這些概念。本發明內容部分的目的既不是確定被請求保護的主題的關鍵特征或必要特征,也不是用于限制被請求保護的主題的范圍。
不同的實施例提供了一種允許終端用戶在客戶機設備桌面之類的客戶機設備上安裝web應用和網站的機制。根據一個或多個實施例,可以使用客戶端代碼以允許與網站相關聯的開發人員定義與用戶交互相關聯的邊界,以及讓運行時引擎(run-time engine) 來實施(enforce)這些邊界。在至少一些實施例中,開發人員可以通過JavaScript代碼來提供各種配置,用于創建開始菜單快捷方式、導航和所謂的跳轉列表(jumplist)整合以及多個其他特征。
在整個附圖中,相同特征是用相同數字標引的。
圖I圖示了根據一個或多個實施例的可以使用這里描述的不同原理的操作環境。
圖2圖示了根據一個或多個實施例的web應用窗口。
圖3圖示了根據一個或多個實施例的JavaScript API。
圖4是描述根據一個或多個實施例的安裝方法中的步驟的流程圖。
圖5是描述根據一個或多個實施例的web應用交互方法中的步驟的流程圖。
圖6圖示了根據一個或多個實施例的客戶機桌面的一部分。
圖7圖示了根據一個或多個實施例的JavaScript API。
圖8圖示了根據一個或多個實施例在網站與定制(custom)跳轉列表之間進行的動態交互。CN 102947792 A書明說2/23 頁
圖9圖示了根據一個或多個實施例的客戶機桌面的一部分。
圖10圖示了根據一個或多個實施例的客戶機桌面的一部分。
圖11是描述根據一個或多個實施例的安裝方法中的步驟的流程圖。
圖12是描述根據一個或多個實施例的方法的步驟的流程圖。
圖13是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖14圖示了根據一個或多個實施例的客戶機桌面。
圖15用圖解法圖示了根據一個或多個實施例的拖放(drag and drop)操作。
圖16是描述根據一個或多個實施例的安裝方法中的步驟的流程圖。
圖17圖示了根據一個或多個實施例的客戶機桌面。
圖18是描述根據一個或多個實施例的安裝方法中的步驟的流程圖。
圖19圖示了根據一個或多個實施例的客戶機桌面。·
圖20是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖21圖示了根據一個或多個實施例的客戶機桌面。
圖22圖示了根據一個或多個實施例的顯示網站的瀏覽器、證書存儲器、相關聯的web應用以及web應用證書存儲器之間的關系。
圖23是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖24是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖25圖示了根據一個或多個實施例的多個web應用實例的示例。
圖26圖示了根據一個或多個實施例的客戶機桌面。
圖27是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖28是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖29圖示了根據一個或多個實施例的客戶機桌面。
圖30圖示了根據一個或多個實施例的客戶機桌面。
圖31圖示了根據一個或多個實施例的客戶機桌面。
圖32是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖33是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖34是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖35圖示了根據一個或多個實施例的web應用與瀏覽器之間的關系。
圖36是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖37是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖38圖示了根據一個或多個實施例的暫時性(transient) web應用的示例。
圖39圖示了根據一個或多個實施例的站點模式瀏覽器。
圖40是描述根據一個或多個實施例的方法中的步驟的流程圖。
圖41圖示了可用于實現一個或多個實施例的例示系統。
具體實施方式
綜沭不同實施例提供了一種允許終端用戶在諸如客戶機設備桌面之類的客戶機設備上安裝web應用和網站的機制。根據一個或多個實施例,可以使用客戶端代碼以允許與網站相4關聯的開發人員定義與用戶交互相關聯的邊界,并且讓運行時引擎來實施這些邊界。在至少一些實施例中,開發人員可以通過JavaScript代碼來提供各種配置,以用于創建開始菜單快捷方式,導航和所謂的跳轉列表整合,以及其他特征。
邊界可被看作是由開發人員定義的與如何將功能暴露給終端用戶相關的體驗。邊界與網站域是關聯的,其中舉例來說,所述網站域可以是可以與單獨應用相關聯的頂級域和子域,或者是在域上托管(host)的網站子集。由此,所述邊界可以由一組用以讓特定web 應用工作的域、子域、文件夾、子站、協議、主機、路徑等等來定義。
在一個或多個實施例中,網站可以選擇如上和如下所述的功能。在這種情況下,開發人員可以提供定義了用戶使用其網站的體驗的邊界的代碼,其中在一些實例中,所述代碼是用JavaScript表述的。作為替換或補充,未選擇如上和如下所述的功能的網站可以具有為其提供的默認體驗。
在后續論述中提供了標題為“操作環境”的部分,所述部分描述了其中可以使用一個或多個實施例的一個環境。此后,標題為“整合基礎結構”的部分描述了根據一個或多個實施例來使得web應用能夠被整合到客戶機設備中的基礎結構。接著,標題為“跳轉列表整合”的部分描述了如何可以根據一個或多個實施例來整合所謂的跳轉列表。接下來,標題為 “任務欄固定(pin)”的部分描述了如何可以根據一個或多個實施例來將web應用固定在任務欄上。此后,標題為“關聯證書和登錄會話”的部分描述了如何可以根據一個或多個實施例來關聯證書和登錄會話。接著,標題為“創建和啟動具有相關聯的證書的web應用”的部分描述了如何可以根據一個或多個實施例來創建和啟動web應用。此后,標題為“web應用任務會話”的部分描述了根據一個或多個實施例的任務會話的概念。接著,標題為“web應用與瀏覽器之間的轉換”的部分描述了如何可以根據一個或多個實施例而在web應用與瀏覽器之間進行轉換。此后,標題為“從瀏覽器中創建暫時性web應用”的部分描述了如何根據一個或多個實施例來從瀏覽器中創建暫時性的web應用。接著,標題為“將暫時性web應用變換成所安裝的web應用”的部分描述了如何根據一個或多個實施例來將暫時性web應用變換成所安裝的web應用。此后,標題為“web應用超級主頁按鈕”的部分描述了根據一個或多個實施例的與web應用相關聯的主頁按鈕。最后,標題為“例示系統”的部分描述了可以用于實現一個或多個實施例的例示系統。
現在將要考慮其中可以實現一個或多個實施例的例示操作環境。
操作環境圖I 一般性地在100圖示了根據一個或多個實施例的操作環境。環境100包括具有一個或多個處理器104、一個或多個計算機可讀存儲媒體106以及一個或多個應用108的計算設備102,其中所述一個或多個應用108駐留在計算機可讀存儲媒體上,并且可以由一個或多個處理器運行。作為示例而不是限制,計算機可讀存儲媒體可以包括通常與計算設備相關聯的所有形式的易失和非易失存儲器和/或存儲媒體。此類媒體可以包括ROM、RAM、閃存、硬盤、可移除媒體等等。以下在圖41中顯示并描述了計算設備的一個具體示例。
此外,計算設備102包括采用web瀏覽器110的形式的軟件應用。可以使用任何適當的web瀏覽器,瀏覽器的示例可以從本文檔的受讓人以及其他各方得到。此外,計算機可讀存儲媒體106可以包括采用如上和如下所述的方式工作的web應用模式瀏覽器111。 所述web應用模式瀏覽器111充當運行時引擎,其中所述引擎分別接收和產生來自和去往網站的API調用,監督web應用安裝過程,實施邊界以及使能如上和如下所述的功能。在操作中,web應用模式瀏覽器是關閉了很多正常瀏覽器功能的完整瀏覽器的消減版本。在一些實例中,web應用模式瀏覽器可被看作是不包含眾多常見的瀏覽器控件的“無系統窗口控件(chrome-less)”瀏覽器。但是,一些命令可以通過微型控制條來暴露。由此,web應用模式瀏覽器移除了眾多會使用戶分心的事物,并且允許有管理的、網站定義的用戶體驗,其中,網站可以對用戶如何與其web應用交互進行控制。
在操作中,web應用模式瀏覽器在邏輯上可被視為駐留在網站與客戶機設備的操作系統之間。由此,web應用模式瀏覽器接收來自網站的調用并且作為響應可以產生操作系統調用,從而影響這里描述的功能。同樣,web應用模式瀏覽器可以接收來自操作系統的且影響網站功能的調用。例如,操作系統暴露了使得能夠與桌面任務欄進行交互的API。Web 應用模式瀏覽器可以接收來自網站的調用,作為響應,所述瀏覽器可以產生使能任務欄功能的API調用,這一點將會從下文中清楚了解。
Web應用模式瀏覽器111可以作為獨立組件來實現。作為替換或補充,Web應用模式瀏覽器111也可以作為應用108和/或瀏覽器110的一部分來實現。
此外,環境100包含諸如因特網之類的網絡112以及可從其接收和向其發送內容的一個或多個網站114。如上文和下文所述,這些內容可以包括整合在客戶機桌面中或以其它方式可以通過客戶機設備使用的內容,例如web應用。
計算設備102可以作為任何適當的計算設備來實施,作為示例而不是限制,所述適當的計算設備可以是臺式計算機、便攜式計算機、諸如個人數字助理(PDA)之類的手持式計算機、手機等等。
已經描述了例示操作環境,現在考慮論述一種允許將web應用整合到客戶機設備中的基礎結構。
整合基礎結構根據一個或多個實施例,網站可以選擇作為更一般的“站點模式”體驗的一部分提供的域導航。在用戶訪問處于特定域內部或外部的鏈接時,域導航使得網站能夠定制他們已有網站的行為。在訪問開發人員所規定的邊界內部的鏈接時,內容可以在作為相關聯的web 應用的一部分由Web應用模式瀏覽器再現的web應用窗口內部被再現和消費。在訪問開發人員規定的邊界以外的鏈接時,相關聯的內容可以在Web應用模式瀏覽器外部的默認瀏覽器的內部被再現和消費。這樣做允許網站定義應該將什么域視為網站擴展以及哪些不應該。
在一個或多個實施例中,導航域可以由web開發人員定義,并且所述導航域識別鏈接,其中所述鏈接的內容是由Web應用模式瀏覽器作為整合網站的一部分顯示的,或者是在web應用模式瀏覽器以外在默認瀏覽器中顯示的。此外,還可以定義用于將web應用頁面的集合關聯在一起的默認域參數。
作為示例,設想以下的單行(in-line)域頁面定義^contoso. crm. dynamics. com\木;木.microsoft. com\木;
這個域頁面定義將會允許在相同的桌面web應用窗口中顯示以下形式的URI sales, contoso. crm. dynamics. com\*hr. contoso. crm. dynamics\*木· microsoft. com\crm\
同樣,即使鏈接引用處于桌面web應用窗口內的頁面內部,所述域頁面定義也會迫使其他URI顯示在桌面web應用窗口之外www. bing. com home. live, com
在以上的域頁面定義中,在web應用安裝API內部使用了通配符。該API通常是在用戶選擇網站提供的網站整合鏈接的時候由網站調用的。所述API可以使用桌面、任務欄、 開始菜單或是將被用來啟動網站快捷方式的其他任何適當位置的信息和內容來填充web 應用文件或webapp”文件。應該意識到和理解的是,任何適當的文件擴展均可用于指示 web應用文件。導航域和其他邊界信息被保存在.webapp文件內。
在啟動.webapp文件時,該文件內部的導航域將會由Web應用模式瀏覽器111實施。用戶選擇或網站訪問的鏈接繼續在web應用窗口內部運行,只要它們與通配符域匹配。 然而,在檢測到處于定義的導航域以外的網站時,將會實例化或者以其他方式使用默認瀏覽器,并且與該網站相關聯的內容將會顯示在web應用窗口以外以及默認瀏覽器內部。
作為示例,對圖2進行考慮,該示了具有由a. com(202)、b. com(204)和d. com(206)組成的導航域集合的web應用窗口 200,這意味著來自這些域的所有頁面全都在web 應用窗口 200內部顯示。在從web應用窗口 200內部訪問來自c. com(208)或e. com(210) 的頁面時,這些頁面會在默認的瀏覽器窗口而不是web應用窗口 200中顯示。
圖3在300圖示了根據一個或多個實施例的JavaScript API。所示出的 JavaScript API使得網站能夠將web應用與客戶機桌面相整合。該API定義了將由web應用或運行時引擎實施的導航域。在本示例中,導航域是用如上所示的通配符表述來進行描述的。所述API使得能夠使用客戶機設備上的內容和信息來填充或更新.webapp應用文件 302,以及在所述文件中存儲導航域和其他信息。這些導航域是在啟動web應用的時候實施的。
在所示出和描述的實施例中,.webapp應用文件302包括網站為其站點模式配置定義的信息。該信息包括開始URL、網站規定的所有導航域、web應用標題以及所謂的網站圖標(favicon),其中所述開始URL是web應用模式瀏覽器顯示的初始頁面。如下所述,其他信息也是可以包含的。
現在,一旦在客戶端啟動web應用,則Web應用模式瀏覽器將會讀取web應用文件,并且將會實施其中定義的邊界。如上所指出的,由于web應用體驗是由能夠知道特定網站及其細微差別的開發人員定義的,因此可以提供完整和整合的用戶體驗。
圖4是描述了根據一個或多個實施例的安裝方法中的步驟的流程圖。該方法可以由任何適當的硬件、軟件、固件或是其組合執行。在至少一些實施例中,所述方法的多個方面是由客戶機設備上運行的軟件執行的。
步驟400選擇網站整合特征。該步驟可以用任何適當的方式執行。通常,所述步驟是在用戶選擇某種工具或以其它方式來采取動作來啟動web應用安裝過程的時候執行的。 例如,用戶可以選擇使得他能夠整合web應用的鏈接。以下提供了如何做到這一點的具體示例。
步驟402在客戶機設備上創建一個在這里被標明為webapp”文件的web應用文件。這個初始創建的文件可以構成一個隨后用接收自網站或是代表網站接收的內容和信息填充的人工制品(artifact)或外殼(shell)。步驟404使用web應用內容來填充web應用文件。該步驟可以用任何適當的方式來執行。例如,該步驟可以通過使用在上文和下文中提供了示例的JavaScript API來執行。作為替換或補充,該步驟可以通過使用HTML之類的標記(markup )來執行。
如果在客戶機上創建了 web應用文件并且使用內容填充了該文件,那么現在可以啟動web應用并與之交互。
圖5是描述了根據一個或多個實施例的web應用交互方法中的步驟的流程圖。該方法可以由任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,所述方法的多個方面是由在客戶機上運行的軟件以及在支持網站的服務器上運行的軟件執行的。 相應地,該圖的一列被標明為“客戶機”,以便標明這些步驟由客戶機執行或是在客戶機上由例如web應用模式瀏覽器執行,此外還有一列被標明為“網站”,以便標明這些步驟由網站執行或是代表網站執行。
步驟500接收對站點模式的用戶選擇。該步驟可以用任何適當的方式執行。例如, 安裝在客戶機桌面上的快捷方式可用于接收站點模式選擇。響應于接收到站點模式選擇, 步驟502請求開始URL。所述開始URL可以在上述web應用文件中被找到。
步驟504接收開始URL請求。步驟506向客戶機返回包含與開始URL相關聯的內容的相關web資源。
步驟508接收相關聯的web資源,步驟510則在web應用窗口中再現web資源。如上所述,web應用窗口是由Web應用模式瀏覽器再現的。步驟512接收與web應用窗口中再現的資源有關的用戶交互。所述用戶交互可以包括任何適當類型的用戶交互。例如,用戶交互可以包括源于web應用窗口內部的導航活動。步驟514確定用戶交互是否處于web 應用文件定義的邊界以內。如果用戶交互處于web應用文件定義的邊界以內,則步驟516 在web應用窗口中再現與用戶交互相關聯的內容。另一方面,如果用戶交互不在web應用文件定義的邊界以內,則步驟518會在默認的web瀏覽器中再現與用戶交互相關聯的內容。
通過這種方式,可以實施網站開發人員定義的特定網站的邊界,以便確保保持用戶體驗為開發人員所預期的用戶體驗。例如,網站定義的開始URL是主頁,并且在web應用模式中對主頁的后續訪問將會導航至開始URL,而不是用戶初始定義的瀏覽器主頁。這樣做允許快速訪問web應用特定的頁面,而不是一些不相關的主頁。該處理緩解了終端用戶的如下痛苦即,必須定義他們自己的站點特定的體驗,而這有可能正確工作,也有可能不正確工作。因此,完整、整合并被智能管理的體驗可被提供給終端用戶。
已經描述了例示的安裝和交互體驗,現在將要考慮跳轉列表整合的概念。
跳轉列表整合在一個或多個實施例中,在可用于與網站交互的桌面整合過程中,開發人員可以使得網站能夠定義一系列的所謂的跳轉列表任務。此外,在至少一些實施例中,網站可以創建和更新定制跳轉列表。
跳轉列表可被認為是構成呈現給用戶的一組相關任務或內容的列表。通過跳轉列表,網站可以向用戶推廣相關和有用信息的精華。所述跳轉列表與特定web應用的能力或功能相關。例如,用于電子郵件應用的跳轉列表可以包括給予用戶打開聯系人、創建新電子郵件消息等能力的任務。在一些情況中,跳轉列表可以包括相關的以及最常用的命令和數據的列表。
在一個或多個實施例中,跳轉列表功能可以被實現為包含靜態元素和動態元素這兩者。
如上所述,開發人員可以在填充web應用文件的web應用安裝過程期間定義靜態元素。與靜態元素關聯的設定可以保存在web應用文件內。在一個或多個實施例中,所述設定可以包括列表名稱以及相關聯的任務。在至少一些實例中,靜態元素可以構成表示常用功能的元素。
與動態元素相關聯的設定可以是由在web應用窗口內部運行的網站頁面驅動的。 這些設定包括向用戶動態暴露可辨別的標記的設定。例如,一個設定可以將一個項目添加至定制跳轉列表,一個設定可以顯示在下文中提供示例的覆蓋圖標。在至少一些實施例中, 所述動態設定可以在每次啟動web應用的時候被清除,并且可以通過web應用腳本代碼來配置。
作為根據一個實施例的定制跳轉列表的示例,考慮圖6,該圖一般性地在600圖示了客戶機桌面的一部分。定制跳轉列表602根據一個或多個實施例被暴露。在這里,靜態元素在604示出,動態元素則是在606示出。在該示例中,靜態元素列表名稱是“任務”,并且所述任務或靜態元素包括“新電子郵件消息”、“新約會”、“新聯系人”以及“新任務”。動態元素列表的名稱是“今天”,并且在該示例中,任務或動態元素包括從用戶日程表中產生的提醒。這些動態元素是由相關聯的網站動態填充的。因此,在該示例中,動態元素或內容與向用戶提供通知的處理是關聯的,并且通常與用戶動作無關。
如上所指出的,跳轉列表可以是在桌面整合過程中定義的。這些任務和跳轉列表定義可被保存在web應用文件內。作為一個示例,考慮圖7,該圖在700圖示了根據一個或多個實施例的JavaScript API。所示出的JavaScript API使得網站能夠與客戶機桌面整合以及定義跳轉列表。除了存在“定制任務”和“定制跳轉列表”之外,這個JavaScript API 可以與參考圖3描述的API是相同或相似的。為了簡潔起見,在這里省略圖3的一些內容。 在至少一些實施例中,跳轉列表任務的靜態列表的初始創建可以用標記定義,例如使用在 HTML文件內部定義的HTML標記符(tag)。
舉個例子,下面考慮使用元標記符來描述靜態列表功能的示例〈META name=〃msapplication-task〃content=〃name=Task; uri=http://marap/test3. html;icon-uri=http://marap/icon3. ico〃/>
在一個或多個實施例中,在執行任務的時候存在一個耦合選項。例如,與任務關聯的URL可以在包含當前查看的網頁的相同web應用/瀏覽器窗口內部打開。作為替換或補充,新的頁面可被啟動。作為替換或補充,可以顯示新的彈出窗口。
在系統定義并讀取了這些參數以后,在用戶將網站安裝至其桌面的時候可以使用這些參數,其中舉例來說,所述網站是通過將其添加至開始菜單或固定在任務欄上而被安裝的,這將在下面進行描述。同時,在至少一些實施例中,有一組動態值是可以由跳轉列表上的網站客戶機代碼操縱的。
網站使用“定制任務”來定義如上所述的靜態任務。在該示例中,靜態任務是新消息的靜態任務。所述API在桌面上創建一個.webapp應用文件702,并且存儲導航域(與圖3的示例一樣)及其他信息,例如與跳轉列表相關聯的信息。在所示出和描述的實施例中,.webapp應用文件702包括網站已為其站點模式配置定義的信息。該信息包括開始URL、網站已規定的所有導航域(沒有特別示出)、web應用標題以及所謂的網站圖標。其他信息包括與如上所述的新消息相關聯的定制任務以及“定制列表”。在該示例中,定制列表元素是當在客戶機上運行web應用的時候可以由網站動態填充的動態元素。在這里,“朋友”名稱包含與動態內容相關聯的報頭。因此,在該實例中,如果用戶的朋友在線,那么動態內容將會與向用戶提供通知的處理相關聯。在這里,定制列表是并非駐留在web應用中的單獨API。然而,所述定制任務駐留在web應用中。在操作中,在web應用運行的時候可以預取并緩存與靜態元素相關聯的項目。另一方面,網站可以在web應用運行的時候邊工作邊提供與動態元素相關聯的項目。作為如何邊工作邊向web應用提供與動態元素相關聯的項目的實現示例,考慮圖8。
圖8圖示了網站如何能夠與定制跳轉列表動態交互從而允許用戶知道消息已經到達。在該示例中,JavaScript 800圖示了網站如何可以向在Web應用模式瀏覽器中托管的頁面發送更新。在瀏覽器中運行的客戶端代碼負責接收更新,更新屏幕上的內容,以及向跳轉列表發送請求來更新其列表。在該示例中,網站能將信息推送給跳轉列表,以便提供實時體驗。在這里,當網站接收到例如新消息O (New Message O)和新消息I (New MessageO之類的新消息時,可以從web應用產生一個JavaScript調用,以便更新跳轉列表802。在至少一些實施例中,在任務欄804中可以出現一個通知,以便向用戶告知接收到了相關信息。所述通知可以出現在任務欄中的任何適當位置,并且可以包括任何適當類型的通知。例如,所述通知可以出現在與web應用相關聯的圖標806之中或是其周圍。作為替換或補充,該通知可以閃爍,以便吸引用戶的注意。作為一個示例,考慮圖9。其中一般性地在900圖示了客戶機桌面的一部分。任務欄901包括與當前web應用相關聯的圖標902。在這里,應該注意的是,在圖標902的內部已經再現了覆蓋圖標904。在該示例中,用戶已接收到一個新消息,并且如上所述,網站已調用web應用而引發在圖標902內再現所述覆蓋圖標904。這向用戶提供新消息業已到達的通知。響應于看到覆蓋圖標904,用戶可以訪問跳轉列表905,以便暴露指示當前正在或即將發生的約會的元素908。此外還應該注意,元素906同樣會被暴露。JavaScript摘錄910圖示了可用于更新覆蓋圖標的代碼的一個示例。網站與web應用之間的動態交互可以采用其他不同的方式進行。例如,在至少一些實施例中,響應于與網站相關的用戶動作,可以從網站向跳轉列表推送一個預覽窗口。在所示出和描述的實施例中,該預覽窗口是由網站提供的微型視圖。所述預覽窗口可以是響應于任何適當類型的用戶動作提供的。例如,在至少一些實施例中,預覽窗口可以是響應于鼠標懸停在與網站相關聯的任務欄圖標上而被從網站推送至跳轉列表的。作為替換或補充,所述預覽窗口可以是通過將光標置于web應用的任務欄圖標上以及通過左鍵點擊而被提供的。作為一個示例,考慮圖10。其中一般性地在1000圖示了客戶機桌面的一部分。任務欄1001包括與當前web應用相關聯的圖標1002。在這里應該注意,用戶將其光標放在了圖標1002上。作為響應,預覽窗口 1004已被再現。在操作中,響應于用戶將其光標放在圖標上的動作 ,一個事件將被傳送至網頁。然后,響應于對所述事件的接收,網頁可以動態地提供預覽或引發再現緩存的預覽窗口。在至少一些實施例中,網站還可以使用預覽窗口來定義工具欄按鈕以及相關聯的行為。例如,在所示出和描述的實施例中,web應用包括媒體播放器應用,并且在覆蓋于預覽窗口 1004之上的用戶界面工具1006中出現三個工具欄按鈕。這些按鈕包括暫停按鈕、停止按鈕以及播放按鈕。在至少一些實施例中,所述工具欄按扭可以用客戶端代碼來實現,其避免了必須與遠端服務器進行交互。例如,個別按鈕可以是為特定網頁注冊的。每一個按鈕都被配置和指定了一個ID。為所有按鈕事件注冊一個“監聽器”。當按下按鈕時,將會產生一個事件,并且所述事件將被反向傳遞至瀏覽器,然后,瀏覽器會將該事件傳播至已注冊的事件監聽器。所述事件包含被按下的按鈕。這樣做使得能夠消除按鈕的歧義。實現示例
在實現示例中,web開發人員可以使用以下的JavaScript功能來更新跳轉列表中的定制列表和更新任務欄覆蓋圖標。列表創建行為
該行為定義作為定制列表標題的列表名稱。這個值將被顯示成列表標題。可選地,初始可以提供包含項目名稱、項目的URI值以及與項目相關聯的圖像的項目列表來填充所述列表。當在web應用模式中啟動瀏覽器時,可以支持所述功能。列表更新行為
列表項目值被提供用來更新特定列表項目。所述列表項目值包括項目名稱、項目的URI值以及與項目相關聯的圖像。當在web應用模式中啟動瀏覽器時,可以支持所述功能。設定覆蓋圖標
規定一個URI值,該URI值指向將會作為現有任務欄圖標的覆蓋圖使用的圖標。當在web應用t旲式中啟動瀏覽器時,可以支持該功能。設定預覽圖像
規定一個URI,其指向應被作為任務欄預覽圖像(或縮略圖預覽)的圖片表示使用的圖像。所述預覽是在用戶使用鼠標左鍵點擊任務欄圖標的時候顯示的。清除覆蓋圖標
該功能將會移除任務欄圖標上的現有覆蓋圖標。當在web應用模式中啟動瀏覽器時,可以支持該功能。Web開發人員可以使用以下的JavaScript功能來定義和修改在特定網站的任務欄預覽窗口中顯示的一組工具欄按鈕。工具欄按鈕安裝
按鈕ID的列表是用工具提示和圖像URL規定的。當用戶選擇工具欄按鈕時,該事件將被傳遞至網站,以便進行處理。然后,網站可以消除按鈕事件的歧義。該調用在打開站點模式窗口以顯示按鈕的時候被執行至少一次。當在web應用模式中啟動瀏覽器時,支持該功倉泛。更新圖像
該功能識別指定按鈕ID的狀態和可視性。所述狀態可以是使能或禁用。在至少一些實施例中,該按鈕默認是使能的。所述視圖可以是顯示或隱藏的。所定義的按鈕默認是可視的。當在web應用模式中啟動瀏覽器時,支持該功能。圖11是描述根據一個或多個實施例的安裝方法中的步驟的流程圖。該方法可以由任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,該方法的多個方面是由客戶機設備上運行的軟件執行的。步驟1100選擇網站整合特征。該步驟可以采用任何適當的方式執行。通常,該步驟是在用戶選擇一種工具或以其它方式采取動作來啟動web應用安裝過程的時候執行的。 舉例來說,用戶可以選擇使得他能夠整合web應用的鏈接。以下提供了如何執行該處理的具體示例。步驟1102在客戶機設備上創建一個web應用文件——在這里將其標明為 webapp”文件。這個文件在初始創建時可以構成人工制品(artifact)或外殼,隨后,所述
人工制品或外殼可以用接收自網站或是代表網站接收的內容和信息來填充。步驟1104使用web應用內容來填充web應用文件,在本示例中,所述內容包括跳轉列表。該步驟可以采用任何適當的方式執行。例如,該步驟可以通過使用以上提供了示例的JavaScript API來執行。作為替換或補充,該步驟的多個方面可以通過使用HTML之類的標記來執行。如果在客戶機上創建和填充了 web應用文件,那么現在可以在任何適當的時間啟動web應用。圖12是描述根據一個或多個實施例的方法的步驟的流程圖。這些步驟可以結合任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,該方法可以由客戶機上運行的軟件與服務器上運行的軟件相關聯地執行。步驟1200接收與跳轉列表相關聯的用戶動作。可以接收以上提供了示例的任何適當的用戶動作。例如,在至少一些實施例中,用戶動作可以是關于特別顯示的跳轉列表或未顯示的跳轉列表而被接收的。作為替換或補充,用戶動作可以是關于所顯示的與web應用相關聯的圖標而被接收的。例如,該圖標可以被顯示在桌面任務欄中或是其他任何適當的位置。以上提供了這種動作的示例。步驟1202呈現與用戶動作相關聯的內容。例如,所呈現的內容可以包括跳轉列表本身。該跳轉列表可以是響應于以上提供了示例的任何適當類型的用戶動作而呈現的。所呈現的內容還可以包括跳轉列表自身以外的內容。例如,定制預覽窗口可以是響應于用戶動作而被呈現的,其中舉例來說,所述用戶動作可以是左鍵點擊任務欄圖標。舉個例子,用戶可以選擇創建或撰寫新的電子郵件消息。圖13是描述根據一個或多個實施例的方法中的步驟的流程圖。該方法可以由任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,該方法的多個方面是由客戶機上運行的軟件以及在支持網站的服務器上運行的軟件執行的。相應地,所述圖的一列被標明為“客戶機”,以便標明這些步驟由客戶機執行或是在客戶機上執行,一列被標明為“網站”,以便標明這些步驟由網站執行或是代表網站執行。步驟1300接收與動態跳轉列表項目相關聯的信息。任何適當的跳轉列表項目均可作為接收信息的基礎,上面已經提供了其示例。步驟1302產生一個通知,并且步驟1304將所述通知傳送至運行web應用的客戶機設備。步驟1306接收所述通知,并且步驟1308為用戶提供可辨別的通知。任何適當類型的可辨別通知都可以被提供。例如,在至少一些實施例中,可辨別的通知可以是能通過視覺辨別的通知,例如覆蓋圖標或閃爍的web應用圖標。作為替換或補充,可辨別的通知可以包括能夠通過聽覺辨別的通知,例如鈴聲或蜂鳴聲。已經考慮了與跳轉列表整合相關聯的不同實施例,現在將要考慮討論如何根據一個或多個實施例來將網站“固定”任務欄之類的桌面特征上。仵備欄固定
有多種不同的web應用可以與客戶機桌面或任務欄整合的方式。在至少一些實施例中,web應用可以通過拖放操作來與桌面整合。作為替換或補充,web應用可以借助web瀏覽器的菜單選擇來進行整合。作為替換或補充,web應用還可以通過相關聯的網站本身來進行整合。在下文中,這些實施例中的每一個都會在其自己的標題下方被論述。
通過拖放操作來整合
在一個或多個實施例中,web應用可以通過拖放操作來與桌面或任務欄整合。作為一個示例,考慮圖14。其中一般性地在1400示出了一個客戶機桌面。web瀏覽器窗口 1402包括地址欄1404,其內顯示了一個網站URL。與所述URL相關聯顯示了名為“網站圖標”1406的圖標。此外,桌面1400包括任務欄1408。圖15用圖解法圖示了根據一個或多個實施例的拖放操作。在該示例中,光標置于網站圖標1406的上方。通過左鍵點擊網站圖標并沿著任務欄1408拖曳該圖標,可以將相關聯的web應用固定在桌面的任務欄1408上,其中在本范例中,所述web應用是消息板應用。所述拖放操作啟動了如上所述的整合web應用的整合過程,從而將其固定在任務欄上。在一個或多個實現方式中,如果與web應用相關聯的網頁具有在瀏覽器中打開的標簽(tab),那么在將網站圖標放至任務欄上之后,相關聯的標簽可以從瀏覽器窗口中消失。作為替換或補充,所述標簽未必會被移除,取而代之,所述標簽的內容有可能被“新標簽”頁面取代。在瀏覽器窗口中打開單個標簽的實例中,在將網站圖標固定在任務欄上之后,瀏覽器窗口將會消失。此時,在瀏覽器關閉之前但是在固定web應用之后,包含在初始站點中的標簽可被移除。另外,在至少一些實施例中,當拖曳操作進入任務欄時,可以呈現“固定到任務欄”形式的工具提示,以便向用戶告知固定功能。更進一步,在首次實例化web應用時,固定在任務欄上的網站或web應用的狀態可以遷移至新顯示的窗口。這樣做允許用戶不必為了能夠使用應用而向該站點重新輸入證書。在將網站或web應用固定到任務欄上并完成如上所述的安裝過程之后,現在可以通過簡單地點擊相關聯的網站圖標來從任務欄啟動web應用。圖16是描述根據一個或多個實施例的安裝方法中的步驟的流程圖。該方法可以由任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,所述方法的多個方面是由客戶機上運行的軟件執行的。步驟1600接收與web應用安裝相關聯的拖放操作的指示。該步驟可以用任何適當的方式來執行。在以上描述的實施例中,該步驟在用戶拖放網站圖標之類的與網站相關聯的圖標的時候被執行,以便向網站指示希望將關聯的web應用與其桌面整合。例如,用戶可以將網站圖標拖放至任務欄、快速啟動區域或是桌面上的其他某個位置,例如桌面畫布(canvass)ο響應于拖放操作,步驟1602創建一個web應用文件。在所示出和描述的實施例中,初始創建的web應用文件是尚未包含來自相關聯的網站的信息的人工制品或外殼,其中舉例來說,所述信息可以是跳轉列表任務、開始URL、網站圖標或其他屬性,例如靜態跳轉列表任務、替換的開始URL、替換的網站圖標等等。這些可以在以后通過如上所述的新的標記和/或JavaScript API來添加。應該意識到和理解的是,在不脫離請求保護的主題的精神和范圍的情況下,除了使用JavaScript API的技術之外的其他技術同樣是可以使用的。通過瀏覽器菜單選擇來進行整合
在一個或多個實施例中,web應用可以經由web瀏覽器的菜單選擇來進行整合。作為示例,考慮圖17。其中,一般性地在1700顯示了一個客戶機桌面。web瀏覽器窗口 1702包括顯示了 URL的地址欄1704。此外,桌面1700包括任務欄1706。采用頁面菜單形式的瀏覽器菜單項目1708被顯示。通過下拉頁面菜單以暴露菜單選擇1710,顯示出菜單項目或者選擇“添加至開始菜單”。通過選擇該選項,可以將網站或web應用添加至桌面的開始菜單,并且可以如上所述地啟動安裝過程。作為替換或補充,可以顯示“添加至任務欄”菜單項目或選擇,以便使得能夠啟動安裝過程。·
圖18是描述根據一個或多個實施例的安裝方法中的步驟的流程圖。該方法可以由任何適當的硬件、軟件、固件或是其組合執行。在至少一些實施例中,所述方法的多個方面是由客戶機上運行的軟件執行的。步驟1800接收瀏覽器菜單選擇。該步驟可以采用任何適當的方式執行。在上述實施例中,當用戶導航至特定網站,下拉瀏覽器菜單來暴露菜單選擇,然后通過選擇與啟動安裝關聯于網站的web應用相關聯的菜單項目以采取動作的時候,執行該步驟。步驟1802響應于接收到瀏覽器菜單選擇而創建一個web應用文件。在所示出和描述的實施例中,初始創建的web應用文件是一個尚未包含來自相關聯的網站的信息的人工制品或外殼,其中所述信息例如是跳轉列表任務、開始URL、網站圖標等等。如上所述,這些信息可以在以后通過新的標記和/或JavaScript API來添加。應該意識到和理解的是,在不脫離請求保護的主題的精神和范圍的情況下,除了使用JavaScript API的技術之外的其他技術同樣是可以使用的。通過相關聯的網站來講行整合
在一個或多個實施例中,web應用與桌面的整合可以是從網頁發生的。在這些實施例中,特定網站可以通過使用JavaScript之類的代碼來選擇整合活動,以便將web應用整合到桌面中。這允許網站控制整合啟動工具。作為示例,考慮圖19。其中,一般性地在1900顯示了一個客戶機桌面。web瀏覽器窗口 1902包括其中顯示了 URL的地址欄1904。此外,桌面1900包括任務欄1906。更進一步,在瀏覽器窗口 1902內顯示的網頁包含標題為“添加至桌面”的鏈接1908。通過點擊該鏈接,用戶可以啟動如上所述的web應用安裝過程。在至少一些實施例中,在發生了鏈接選擇之后,可以呈現一個對用戶正在采取的用戶動作以及去哪里訪問其新創建的快捷方式進行解釋說明的模態確認對話。該確認對話可以向用戶呈現正在被呈現的頁面的源URL。所顯示的URL可以包含網站的完整路徑。這可以允許用戶核實其希望安裝的網站是由正確站點提供服務的。這可以緩解與惡意子目錄相關的狀況。在不同的實現方式中,檢查要與桌面整合的網站的URL以便確認所述URL與包含所述URL的網頁處于相同的域。如果不是的話,則可以顯示差錯,并且該操作可以失敗。在用戶確認了操作之后,該對話可被移除,并且可以使用正確的URL來顯示web應用窗口。圖20是描述根據一個或多個實施例的安裝方法中的步驟的流程圖。該方法可以由任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,所述方法的多個方面是由客戶機上運行的軟件執行的。步驟2000顯示一個具有整合鏈接的網頁。該步驟可以采用任何適當方式執行,以上提供其示例。步驟2002接收對于整合鏈接的選擇。步驟2004響應于接收到鏈接選擇創建一個web應用文件。在所示出和描述的實施例中,初始創建的web應用文件是一個尚未包含來自關聯網站的信息的人工制品或外殼,其中所述信息例如是跳轉列表任務、開始URL、網站圖標等等。如上所述,這些信息可以在以后通過新的標記和/或JavaScript API來添加。應該意識到和理解的是,在不脫離請求保護的主題的精神和范圍的情況下,除了使用JavaScript API的技術之外的其他技術同樣是可以使用的。在至少一些實施例中,與web應用相關聯的多個窗口或標簽的視覺表示可被提供給用戶。作為示例,考慮圖21。其中,桌面2100包括具有web應用圖標固定在其上的任務欄2102。通過點擊該圖標,使用光標來啟動web應用。在該示例中,假設用戶已使用web應用的開始頁面導航至多個頁面。所述web應用可以使得能夠實現顯示了用戶所導航到的網頁集合2104的可視化。特別地,在該示例中,集合2104包括用于web應用的開始頁面2106以及用戶從開始頁面導航至的后續頁面2108和2110。已經考慮了不同的web應用整合技術,現在考慮論述如何可以將用戶證書與用于web應用的登錄會話相關聯。關聯證書和登錄會話
不同的實施例使得能夠以一種跨越web應用的不同實例保持登錄或證書信息的方式來整合與使用登錄或證書信息的網站相關聯的一個或多個web應用。當瀏覽器導航至使用登錄或證書信息的網站時,所述登錄或證書信息既可以是手動輸入的,也可以是從證書存儲器中檢索得到的。證書存儲器可以包含用戶登錄信息,作為示例而不是限制,所述用戶登錄信息可以是用戶名和口令或用于特定URL的用戶證書。相同的URL或網站可以具有多個條目,并且每一個條目都與不同用戶相關聯。同樣,證書存儲器可以包含用于多個URL的用戶登錄信息或證書。在至少一些實施例中,與用戶登錄的網站相關聯的web應用可以采用如上所述的方式整合在桌面上并進行交互。在整合此類web應用時,所述web應用與什么網站相關聯以及登錄至該網站的用戶將會通過一個過程來確定。該過程搜索證書存儲器來找出相關聯的登錄信息和/或證書。然后,該過程可以在用戶、所創建的web應用以及相關證書之間創建關聯。作為示例,考慮圖22,該示了根據一個或多個實施例的網站、證書存儲器以及web應用之間的關系。瀏覽器2200顯示使用登錄信息的網站。除了顯示URL之外,還顯示了一個圖標2210,其中如上所述,可以選擇所述圖標以促成web應用的整合。證書存儲器2220包括包含用于多個網站的登錄信息的條目。在2230顯示了一個這樣的條目。在這里,該條目包括網站URL、用戶名以及口令。雖然圖22將登錄信息顯示為包含用戶名和口令,但是應該意識到和理解的是,其他形式的登錄信息或證書也是可以使用的。在一個或多個實施例中,如上所述并且如圖標2240所示,圖標2210可被選擇并被拖放至任務欄2235。該過程將會啟動與網站相關聯的web應用的整合。在接收到所述選擇之后,當前哪一個用戶登錄至網站將會由一個過程來確定,并且所述過程在證書存儲器2220中搜索相關聯的證書。然而應該意識到和理解的是,在不脫離請求保護的主題的精神的情況下,相關聯的證書是可以用其他方式確定和/或獲取的。一旦獲取了用戶證書和/或登錄信息,就在web應用證書存儲器2250中進行證書與web應用之間的關聯。web應用證書存儲器2250可以包括一個或多個條目,其中所述條目包含與網站、web應用以及相關證書之間的關聯有關的數據。舉例來說,圖22圖示了被顯示為包含用戶JiiiA的與網站“a. com”相關的登錄信息的條目2260。除了 URL、用戶名和口令信息之外,條目2260還包括可用于將web應用關聯于相應證書的應用ID或“AppID”。web應用證書存儲器2250還包括用于同一網站“a. com”但是不同用戶的第二條目2270。該機制允許將來自相同網站的個別的web應用關聯于不同用戶以及與之關聯的證書。
雖然在圖22中沒有示出,但是不同形式的用戶登錄信息和/或證書都可以與web應用相關聯。舉個例子,在一個實施例中,一個關聯可以包含向回指向證書存儲器2220中的信息的指針或引用。在另一個實施例中,web應用證書存儲器2250可以包括拷貝自證書存儲器的信息。在再另一個實施例中,與用戶名和口令分離或是作為其補充的證書可以與web應用相關聯。例如,生物測定信息可以形成在web應用證書存儲器中創建的關聯的基礎。已經描述了網站、證書存儲器和web應用之間的關系,現在將考慮如何可以為使用相關聯的證書的網站整合web應用。創津和啟動具有相關聯的證書的web應用
圖23圖示了描述了根據一個或多個實施例的方法中的步驟的流程圖。該方法可以由任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,所述方法的多個方面是由客戶機上運行的軟件執行的。步驟2300接收對于網站整合特征的選擇。在上文中已提供了如何執行該處理的示例。如上所述,網站整合特征與web應用在客戶機桌面上的安裝是關聯的。響應于接收到對于網站整合特征的選擇,步驟2302將會啟動一個如上所述的用于在客戶機桌面上安裝web應用的安裝過程。特別地,如上所述,在客戶機上該過程的啟動可以包括創建web應用文件。步驟2304獲取與關聯于網站的當前web會話相關聯的會話信息。該步驟可以采用任何適當的方式來執行。例如,在一個實施例中,會話信息可以是在瀏覽器再現與網站相關聯的內容與安裝過程之間使用共享存儲器組件獲取的。在另一個實施例中,在選擇了網站整合特征之后,網站可以自動轉發會話信息。在再另一個實施例中,會話信息可以由瀏覽器存儲,并且后續可以對其進行查詢。響應于獲取了會話信息,步驟2306獲取與會話信息相關的證書。在一個實施例中,可以在證書存儲器中查詢與用戶登錄的網站相關的登錄和/或證書。例如,可以在證書存儲器中查詢與當前會話的網站及用戶相關聯的用戶名和口令。步驟2308將與會話信息相關的證書和/或登錄信息關聯于一個web應用。該步驟可以采用任何適當的方式執行。例如,證書可被拷貝至web應用證書存儲器,以便在以后進行參考。作為替換或補充,可以在web應用證書存儲器中放置指向證書存儲器中的證書的指針或引用。標識數字可以至少部分基于會話信息和/或證書產生,以便為web應用的每一個實例以及相關的證書和/或登錄信息創建唯一 ID。所述信息可被添加至web應用證書存儲器條目,以便將所獲取的證書和/或登錄信息關聯于web應用。然而應該意識到和理解的是,在不脫離請求保護的主題的精神和范圍的情況下,任何適當的技術均可用于將證書與web應用相關聯。如上所述,每一個web應用實例的唯一 ID允許將web應用的多個實例關聯于相同的URL或網站,其中每一個實例都與不同的用戶證書相關聯。圖24是描述了根據一個或多個實施例的方法中的步驟的流程圖。該方法可以由任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,所述方法的多個方面是由客戶機上運行的軟件執行的。步驟2400接收對于待啟動web應用的選擇。該步驟可以采用任何適當的方式來執行。舉個例子,如上所述,可以從圖標固定于其上的任務欄進行圖標選擇。作為替換或補充,選擇可以是從桌面開始菜單或系統工具欄做出的。一旦接收到對于待啟動的web應用 的選擇,步驟2402將會檢索與web應用相關聯的證書。例如,在一個或多個實施例中,可以使用AppID來參考web應用證書存儲器,以便檢索當前登錄的用戶的登錄信息。步驟2404檢索與web應用以及相關證書相關聯的URL和/或FormID (表單ID)。一旦獲取了步驟2402和2404中描述的信息,步驟2406會在用戶未干預的情況下自治地登錄至相關聯的網站。在登錄到該網站之后,如先前所述,步驟2408將會導航至開始URL。已經描述了如何整合和啟動與證書相關聯的web應用,現在考慮論述具有相關聯的證書的web應用的多個實例。具有相關聯的證書的web應用的多個實例
圖25圖示了與證書關聯的多個web應用實例的示例。web應用證書存儲器2500包括與web應用以及網站的關聯證書有關的數據。在web應用證書存儲器2500中包含了條目2510和2520,其中每一個條目用于不同的用戶。如圖25所示,條目2510與網站“a. com”有關并且包含了用于登錄至相關聯的網站的附加信息,例如用戶名jsmith和口令bulldogs。條目2510包括一個用于將所述條目與web應用2530關聯起來的AppID。條目2520同樣與網站“a. com”有關,但其包含用戶bsmith的登錄信息,并且與web應用2540相關聯。雖然圖25圖示了包含URL/FormID、用戶名、口令以及AppID的條目,但是應該意識到和理解的是,在不脫離請求保護的主題的精神的情況下,不同形式的關聯和證書信息都是可以使用的。由此,web應用證書存儲器中的兩個或更多數據條目可以包括用于識別整合在客戶機桌面上的不同web應用的數據,并且每一個條目都具有與相同網站相關聯的不同用戶證書。在一個或多個實施例中,與相同網站相關聯的一個或多個web應用是可以同時存在或激活的。例如,軟件模塊可被配置成使得web應用能夠借助桌面工具欄來啟動,以及在啟動web應用的時候使用相關聯的證書來自動將相關聯的用戶登錄至網站。除了啟動單個web應用之外,當選擇啟動第二 web應用的時候,軟件模塊還可以被配置成使得第二 web應用能夠使用用于相同網站或不同網站的不同用戶證書來啟動。例如,圖25的兩個web應用2530、2540是同時激活的。如上所述,每一個應用都與網站“a. com”有關,但是具有與之關聯的不同證書。在選擇和啟動web應用2530的時候,所述web應用會自動地使用與用戶jsmith相關聯的證書登錄至網站“a. com”。同樣,在選擇和啟動web應用2540的時候,所述web應用會使用與用戶bsmith相關聯的證書登錄至網站“a. com”。由此,與相同網站相關聯的web應用的多個實例可被同時激活,并且可以與不同的證書相關聯。已經描述了創建和啟動具有相關聯的證書的web應用的概念,現在考慮論述web應用任務會話。web應用任務會話
在一個或多個實施例中,可以創建任務會話以便使得與web應用相關聯的狀態信息能夠被保存到系統中。作為示例而不是限制,狀態信息可以包括會話cookies、JavaScript狀態、DOM狀態、表單狀態、標簽和窗口位置、窗口大小、URL、歷史記錄等等。由于保存了與特定任務會話相關聯的狀態信息,由此,所述web應用可被關閉,并且可以在以后重新打開,從而恢復或補充(re-hydrate) web應用的狀態信息。所述狀態信息既可以被自動保存,也可以通過手動選擇過程來保存。 作為示例,考慮圖26。其中,桌面2600包括用于規劃旅行的web應用窗口 2602。桌面2600還包括任務欄2604和跳轉列表2606。web應用目錄2608提供了一個可用于存儲任務會話狀態信息的存儲設備。在所示出和描述的實施例中,web應用目錄2608是在系統的用戶空間中創建的。在該示例中,用戶具有兩個已經保存的任務會話,其中一個與波多黎各旅行相關聯,另一個則與阿拉斯加旅行相關聯。在操作中,當用戶與web應用交互時,所述用戶可以通過任何適當的工具來選擇創建和保存任務會話。在所示出的示例中,跳轉列表2606具有包含兩個條目的菜單項目“任務”。第一個條目“新任務會話”使得用戶能夠創建新的任務會話。第二個條目“保存當前任務”使得用戶能夠保存當前任務。通過保存當前任務,與任務相關聯的狀態信息將會留存于web應用目錄2608。標題為“打開任務會話”的菜單項目包含使得用戶能夠恢復或補充留存于web應用目錄2608的先前任務會話的條目。在這里,有兩個先前提及以及先前保存的任務會話——波多黎各旅行和阿拉斯加旅行。從以上的示例中可以注意到,可為個別的web應用創建和保存多個任務會話。在保存任務會話的時候,與web應用相關聯的應用ID可以與任務會話一起保存。然后,該應用ID可用于確定哪一個web應用將會消費與保存的任務會話相關聯的信息。任何適當的技術和方法均可用于使得能夠創建和保存任務會話。在至少一些實施例中,系統可以利用或以其它方式使用與系統的web瀏覽器相關聯的崩潰恢復系統。在這種情況下,舉例來說,崩潰恢復功能可以是在用戶選擇保存當前任務或是創建新的任務會話的時候被觸發的。崩潰恢復功能可以創建一個駐留在用戶的應用數據目錄中并且可以用于保存與任務會話相關聯的信息的“appdata”文件。本領域技術人員是理解崩潰恢復系統的具體操作的。因此,為了簡潔起見,在這里沒有描述此類系統。圖27是描述了根據一個或多個實施例來保存任務會話狀態信息的方法中的步驟的流程圖。這些步驟可以結合任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,所述方法可以由客戶機上運行的軟件與服務器上運行的軟件相關聯地執行。步驟2700接收與保存任務會話狀態信息相關聯的輸入。可以接收任何適當的輸入。例如,所接收的輸入可以包括接收自用戶的輸入。作為替換或補充,該輸入可以包括某種類型的自動編程輸入。在至少一些實施例中,用戶輸入可以是經由跳轉列表接收的。作為替換或補充,用戶輸入也可以是經由快捷方式接收的。在所示出和描述的實施例中,用戶輸入指示用戶希望保存與web應用相關聯的任務會話狀態信息。步驟2702創建或以其他方式訪問web應用目錄中的任務會話數據結構。該任務會話數據結構將被用于保存任務會話狀態信息。步驟2704將任務會話狀態信息保存在數據結構中。該步驟可以采用任何適當的方式執行。例如,該步驟可以是在用戶選擇保存任務會話狀態信息的時候執行的。作為替換或補充,該步驟可以是在用戶與web應用進行交互的過程中周期性執行的。在至少一些實施例中,步驟2702和2704可以是通過使用web瀏覽器的崩潰恢復系統執行的。然而應該意識到和理解的是,在不脫離請求保護的主題的精神和范圍的情況下,其他技術也是可以使用的。圖28是描述根據一個或多個實施例來恢復狀態信息已被保存的任務會話的方法中的步驟的流程圖。這些步驟可以結合任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,所述方法可以由客戶機上運行的軟件與在服務器上運行的軟件相關聯地執行。步驟2800接收與恢復任務會話相關聯的用戶輸入,其中所述任務會話的狀態信 息先前已被保存。步驟2802訪問web應用目錄中的任務會話數據結構。如上所述,任務會話的狀態信息是保存在任務會話數據結構中的。步驟2804從web應用目錄中檢索任務會話狀態信息。步驟2806將會啟動相關聯的web應用,并且將會使用從web應用目錄檢索的任務會話狀態信息來恢復任務會話。已經描述了保存和重新使用任務會話狀態信息的概念,現在考慮如何可以在web應用與瀏覽器之間執行轉換。ffeb應用與瀏覽器之間的轉換
在一個或多個實施例,web應用可以轉換至瀏覽器體驗,以便能夠利用無法由使能所述web應用的Web應用模式瀏覽器提供的瀏覽器能力。回憶一下,這是因為在一些實施例中,Web應用模式瀏覽器是使得開發人員能夠提供更加特定于站點的體驗的消減的或無系統窗口控件的瀏覽器。例如,從Web應用模式瀏覽器中排除的此類其他能力可以包括收藏夾、工具欄和/或其他插件(add-on)。在至少一些實施例中,與個別的標簽相關聯的內容和狀態可被從web應用遷移至web瀏覽器。作為替換或補充,與多個標簽相關聯的內容和狀態和/或web應用的完整的內容和狀態可被從web應用遷移至web瀏覽器。作為替換或補充,與個別的標簽相關聯的會話可被從web應用遷移至瀏覽器。考慮這樣一種狀況,其中用戶從其桌面啟動了一個web應用,在其內進行了導航,并且在新標簽中打開了一個或多個鏈接。作為一個示例,考慮圖29。其中,桌面2900包括web應用窗口 2902,所述窗口則包含用于規劃旅行的web應用的一部分。桌面2900還包括用于從中啟動web應用的任務欄2904,例如通過點擊固定在任務欄上的相關聯的圖標來啟動。web應用窗口 2902包括三個標簽2906、2908和2910。在該實例中,用戶選擇了標簽2906并且具有一個可被用戶打開的鏈接“點擊這里來搜索航班”。現在,假設用戶點擊相關聯的鏈接來打開它,一旦打開了所述鏈接,則確定其希望為在標簽2906中顯示的網站創建一個收藏夾項目。在這個實例中,用戶可以打開工具菜單2912或是使用其他某種用戶界面工具,并且選擇一個在相關聯的web瀏覽器中打開標簽內容的選項。作為一個示例,考慮使用與圖29相同的數字的圖30。
其中,打開工具菜單2912以便暴露其內容3000。在該示例中為用戶提供了兩個選擇一“在瀏覽器中打開標簽...”以及“在瀏覽器中打開WebApp內容...”。第一個選擇使得用戶能夠在web瀏覽器中打開選定標簽的內容。當在web瀏覽器中打開選定標簽時,所述標簽的內容和狀態將會遷移至web瀏覽器。web瀏覽器可以是一個具有打開的實例的瀏覽器,或者可替換地 是一個已啟動的瀏覽器。第二個選擇使得用戶能夠在web瀏覽器中打開web應用的完整的內容。當這樣做時,web應用的內容和狀態將會遷移至web瀏覽器。任何適當的技術均可用于將內容和狀態從web應用標簽或web應用遷移至web瀏覽器。在至少一些實施例中,所述遷移是通過使用web瀏覽器的崩潰恢復系統來進行的,例如如上所述的崩潰恢復系統。特別地,當用戶指示希望將內容和狀態從web應用遷移至web瀏覽器時,內容和狀態可被寫入系統的盤,例如通過寫包含將被遷移的相關數據的appdata文件。此外,在至少一些實例中,共享存儲器可以用于遷移那些通常未被web瀏覽器的崩潰恢復系統使用的信息或數據。例如,諸如證書和會話cookies之類的數據可以保存在共享存儲器中,并且可以使用所述共享存儲器來使得web瀏覽器能夠使用此類數據。—旦用戶選擇了在工具菜單2912中顯示的特定選項,那么可以將所述信息或數據遷移至web瀏覽器的當前實例或新的實例,并且可以關閉web應用窗口 2902中的相關聯的標簽。在一個或多個實施例,如果正在從中遷出信息或數據的標簽是在web應用中打開的唯一標簽,那么可以在完成遷移之后關閉所述web應用。當web應用和web瀏覽器跨越進程邊界在不同進程中運行時,上述方法同樣是適用的。換言之,使用崩潰恢復系統和共享存儲器的遷移同樣適合跨越進程邊界。然而,在一些情況中,進程邊界并不一定需要跨越。相反,web應用以及后續的web瀏覽器功能可以從相同進程內部暴露。特別地,在這個實例中,web瀏覽器用戶界面可以結合web應用窗口2902而被實例化和使用,并且通過Web應用模式瀏覽器不可用的功能可以通過web瀏覽器的用戶界面來開啟和使得可訪問。在操作中,一種實現方式是如下進行的。首先,web應用產生一些崩潰恢復文件。新的瀏覽器將被啟動,并且加載來自崩潰恢復文件的崩潰恢復信息。然后,所述信息將被用于配置新瀏覽器的狀態。當用戶在新瀏覽器內部工作時,他或她將能夠經由瀏覽器的標準用戶界面來訪問所有瀏覽器功能。圖31圖示了用戶已選擇將關聯于標簽的內容和狀態遷移至新瀏覽器實例的實施例。使用了與圖29的示例相同的數字。在這里,假設用戶為標簽2906選擇了菜單選擇“在瀏覽器中打開標簽”(圖30)。作為響應,所述標簽的內容和狀態將會遷移到web瀏覽器的新實例,其中所述實例的相關聯的用戶界面窗口是在3100顯示的。用戶界面窗口 3100包括與已經從web應用遷移的標簽相關聯的地址欄3102以及標簽3104。應該注意的是,在本示例中,在web應用窗口 2902中已經關閉了標簽2906 (圖30),然而由于打開了多個標簽,因此,所述web應用仍舊是打開的。圖32是描述了根據一個或多個實施例的方法中的步驟的流程圖。這些步驟可以結合任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,所述方法可以由客戶機上運行的軟件與服務器上運行的軟件相關聯地來執行。步驟3200接收與將web應用內容和/或狀態遷移至web瀏覽器的處理相關聯的用戶輸入。可以接收任何適當的輸入。例如,在至少一些實施例中,輸入可以是通過web應用暴露的工具菜單接收的。步驟3202將web應用內容和/或狀態遷移至web瀏覽器。并且任何適當的技術均可以用于遷移web應用內容和/或狀態。此外,處于任何適當的粒度等級的內容和/或狀態都是可以遷移的。例如,可以遷移與web應用的個別的標簽或多個標簽相關聯的內容和/或狀態。作為替換或補充,web應用的全部內容都是可以遷移的。更進一步,在至少一些實施例中,所述遷移可以跨越進程邊界進行。作為替換或補充,所述遷移可以在同一進程內部進行。圖33是描述了根據一個或多個實施例的方法中的步驟的流程圖。這些步驟可以結合任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,所述方法可以由客戶機上運行的軟件與服務器上運行的軟件相關聯地執行。步驟3300接收與將web應用內容和/或狀態遷移至web瀏覽器的處理相關聯的用 戶輸入。可以接收任何適當的輸入。例如,在至少一些實施例中,輸入可以是通過web應用暴露的工具菜單接收的。步驟3302將web瀏覽器的用戶界面實例化。步驟3304使用web瀏覽器用戶界面來暴露功能。暴露功能包括使得能夠通過web瀏覽器的用戶界面來與web應用內容進行交互。在至少一些實施例中,所暴露的功能包括通過web應用或Web應用模式瀏覽器不可用且可用于與web應用內容交互的功能。在上文中提供了此類功能的示例。在web應用內容和/或狀態的遷移是在同一進程內部進行的情形下,圖33的方法可以是有用的。圖34是描述了根據一個或多個實施例的方法中的步驟的流程圖。這些步驟可以結合任何適當的硬件、軟件、固件或是其組合來執行。在至少一些實施例中,所述方法可以由客戶機上運行的軟件與服務器上運行的軟件相關聯地執行。步驟3400接收與將web應用內容和/或狀態遷移至web瀏覽器的處理相關聯的用戶輸入。可以接收任何適當的輸入。例如,在至少一些實施例中,輸入可以是通過web應用暴露的工具菜單接收的。步驟3402保存與web應用內容相關聯的數據。該步驟可以采用任何適當的方式來執行。舉例來說,在至少一些實施例中,至少一些數據可被寫入系統的盤。任何適當的技術均可用于將數據寫入系統的盤。舉個例子,在至少一些實施例中,web瀏覽器的崩潰恢復系統可以用于將數據寫入系統的盤。更進一步,在至少一些實施例中,步驟3402可以通過使用在web應用與web瀏覽器之間共享的共享存儲器來執行。步驟3404確定web瀏覽器是否打開。如果web瀏覽器是打開的,那么步驟3406在web瀏覽器中使用保存的數據來呈現web應用內容。另一方面,如果web瀏覽器沒有打開,那么步驟3408將會啟動web瀏覽器,并且返回步驟3406,以便使用保存的數據來呈現web應用內容。從瀏覽器中創津暫時件web應用
不同的實施例使得能夠創建一個或多個所謂的暫時性web應用。在至少一些實施例中,所述暫時性web應用可以是在沒有如上所述將暫時性web應用固定在任務欄上或以其他方式將暫時性web應用的相關文件或標記整合至客戶機桌面的情況下創建的。舉例來說,暫時性web應用有可能不具有整合在客戶機桌面上且提供了一種使得能夠啟動或重新啟動它的方式的任何用戶界面工具,例如開始菜單中的快捷方式、客戶機任務欄上的快捷方式圖標等等。然而,在這種實例中,用戶可以從與暫時性web應用相關聯的網站啟動所述暫時性web應用,并且可以在如上所述地安裝或整合了所述web應用的情況下訪問所述web應用提供的相同功能。然后,在使用了暫時性web應用之后,用戶可以將其關閉。在至少一些實施例中,一旦關閉了暫時性web應用,貝U用戶將不再能夠訪問所述web應用的特定實例,由此將會使得不能從客戶機桌面的任務欄或開始菜單重新啟動所述暫時性web應用。一種用于這樣做的方式是在用戶初始從相關聯的網站啟動所述web應用的時候刪除為其創建的文件或進程。在一些實施例中,暫時性web應用可以被變換成已安裝的web應用,由此可以從客戶機桌面提供針對所述web應用的未來訪問。作為示例,考慮圖35,該示了暫時性web應用與瀏覽器之間的關系。在這里,瀏覽器3500使得能夠通過帶有標簽的系統來訪問多個網頁,其中標簽3510與網站“任何搜索頁面”相關聯,并且標簽3520與“第二個打開頁面”相關聯。在一個或多個實施例中,暫時性web應用可以是從打開的頁面創建的。在圖35中,暫時性web應用3530是通過用戶選擇標簽3510以及在桌面上將所述選擇拖放至瀏覽器3500以外而被產生或創建的。當發生這種情況時,可以在臨時位置創建暫時性web應用文件。
然而應該意識到和理解的是,在不脫離請求保護的主題的精神和范圍的情況下,暫時性web應用是可以采用其他方式產生的。例如,瀏覽器3500可以具有下拉菜單,以便于選擇網頁以及后續產生相關聯的暫時性web應用。在本文的上下文中,暫時性web應用是那些并非按照以上在本文中描述的方式安裝在客戶機系統上的web應用。然而,網站仍舊可以在暫時性web應用中執行可以在已安裝的web應用中執行的相同的功能,并且提供針對所述功能的訪問。例如,網站可以修改暫時性web應用的獨立跳轉列表,設定和清除覆蓋圖標等等。作為替換或補充,暫時性web應用可以支持與已安裝的web應用相同的行為,例如如上所述提供從暫時性web應用內部打開的獨立的標簽或窗口集合。圖36圖示了描述了根據一個或多個實施例的方法中的步驟的流程圖。該方法可以結合任何適當的硬件、軟件、固件或是其組合來實現。在至少一些實施例中,該方法的多個方面可以由適當配置的web瀏覽器和/或客戶機設備上的軟件模塊來實現,例如圖I中的那些。步驟3600接收對于可以從中獲取web應用的網站的選擇。該步驟可以采用任何適當方式來完成,例如通過在帶有標簽的web瀏覽器中選擇標簽,通過下拉菜單等等。一旦接收到對于網站的選擇,則步驟3602將會接收在客戶機設備上創建作為暫時性web應用的web應用的輸入。在一個或多個實施例中,該處理可以包括接收包含了可用于產生web應用的請求或其他信息的消息或調用。在其他實施例中,該處理可以包括接收從用戶拖放與網站相關聯的某個標記的處理中產生的輸入。步驟3604創建一個與所選擇的網站相關聯的暫時性web應用。在一些實施例中,倉Il建暫時性web應用的處理將會產生web應用文件和/或進程,而不會將其或是相關聯的任何標記整合在客戶機桌面或開始菜單上。例如,相關聯的文件可以保存在與放置整合的web應用文件的位置不同的臨時文件位置。此外,在至少一些實施例中,暫時性web應用的創建可以包括將網站狀態從瀏覽器轉移到暫時性web應用。圖37圖示了描述了根據一個或多個實施例的方法中的步驟的流程圖。該方法可以結合任何適當的硬件、軟件、固件或是其組合來實現。在至少一些實施例中,該方法的多個方面可以由適當配置的web瀏覽器和/或軟件模塊來實現,例如圖I中的那些。
步驟3700接收關閉暫時性web應用的輸入。該步驟可以采用任何適當的方式來執行。例如,在一個實施例中,該處理可以包括從用戶那里接收在打開的暫時性web應用上選擇關閉按鈕的輸入。在另一個實施例中,該處理可以包括接收基于用戶在暫時性web應用的下拉菜單上選擇關閉選項的輸入。一旦接收到關閉暫時性web應用的輸入,則步驟3702將會關閉所述暫時性web應用。關閉暫時性web應用的處理可以包括刪除或移除暫時性web應用的相關聯的文件和進程。由此,一旦關閉了暫時性web應用,那么如下所述,在沒有以如上所述的方式再次對其進行訪問或是將其作為非暫時性web應用進行安裝的情況下,用戶將不再能訪問其功能。已經描述了暫時性web應用的創建和刪除,現在考慮如何可以根據一個或多個實施例來將暫時性web應用變換成固定或安裝的web應用。將暫時性web應用變換成安裝的web應用
在一個或多個實施例中,暫時性web應用可被變換成安裝或整合的web應用,以便允許·在關閉了 web應用之后永久性訪問所述web應用。一旦被變換,則可以認為所述暫時應web應用是非暫時性web應用。圖38圖示了包含跳轉列表的暫時性web應用。任務欄3800顯示了在客戶機設備上打開和運行的多個程序。暫時性web應用3810是一個源于程序3840的web應用。跳轉列表3820與暫時性web應用3810相關聯。與安裝或整合的web應用的情況一樣,跳轉列表3820具有與已安裝的web應用相關聯的所有可能功能。此外,跳轉列表3820包括名稱為“將這個程序固定在任務欄上”的項目3830。選擇該選項將web應用固定在客戶機任務欄上,由此可以如上所述地將web應用以及相關聯的用戶界面工具安裝在客戶機桌面上。這樣做使得現在已不再是暫時性的web應用能夠從桌面重新啟動。然而,應該意識到和理解的是,在不脫離請求保護的主題的精神和范圍的情況下,任何適當的技術均可用于將暫時性web應用變換成非暫時性web應用。舉例來說,在一些實施例中,暫時性web應用可被添加至客戶機桌面的開始菜單,以便整合和安裝所述web應用。在另一個實施例中,暫時性web應用可以具有下拉菜單,所述下拉菜單具有用于啟動安裝過程的選項。當然,有多種方式可以用于將暫時性web應用變換成非暫時性web應用。web應用超級主頁按鈕
在與web應用交互的時候,除了直接與關聯于web應用的網站相關聯的域之外,用戶還可以導航至其他域。例如,用戶可以啟動電子郵件web應用,并且可以沿著外部鏈接到達另一個站點,例如新聞、購物或娛樂站點。在一個或多個實施例中,web應用主頁按鈕是作為用戶界面體驗的一部分提供的。所述web應用主頁按鈕服務于數個目的。首先,web應用主頁按鈕指示了特定web應用模式瀏覽器(也被稱為“站點模式瀏覽器”)實例的目的是用于相關聯的web應用。所述web應用主頁按鈕可以使用商標或其他視覺工具來傳達該信息。其次,web應用主頁按鈕使得用戶能夠通過簡單地點擊web應用主頁按鈕來簡單快速地開始返回到其web應用體驗的開端,以便訪問開始URL。這樣做緩解了如下問題為了訪問相關聯的網站的開始URL,必須關閉和重新啟動特定web應用。在至少一些實施例中,與開始URL相關聯的值默認是從供用戶拖放任務欄上的網站圖標的頁面中確定的。作為替換,web開發人員可以定義一個HTML標記符,所述標記符描述作為其頁面一部分的開始URL。這樣做允許其定義一個替換的開始URL,其中所述替換的開始URL不同于他們當前查看的頁面。作為示例,考慮圖39。其中,Web應用模式瀏覽器3900包括其中出現了網站的URL的地址欄3902。此外,web應用主頁按鈕3904是在后退和前進導航按鈕附近出現的。當用戶導航至與web應用相關聯的網站以外的域時,他們可以在任何時間簡單地點擊web應用主頁按鈕3904,以便導航至如在web應用文件中描述的網站的開始URL。更進一步,在至少一些實施例中,為了在web應用而不是默認瀏覽器內部向用戶傳遞其上下文,用于導航的后退和前進按鈕可以通過web應用的主頁按鈕來使用或提取站點商標的基色,以便呈現所述網站的標識。此外,可以使用HTML標記符以便使得網站能夠將這些按鈕的顏色指定成其HTML頁面的一部分。圖40是描述了根據一個或多個實施例的方法中的步驟的流程圖。該方法可以結合任何適當的硬件、軟件、固件或是其組合來實現。在至少一些實施例中,該方法可以由站點模式瀏覽器實現,例如上面所描述的那些。 步驟4000將站點模式瀏覽器導航至與安裝在客戶機設備上的web應用相關聯的網站開始URL。該步驟可以采用以上提供了實例的任何適當方式來執行。步驟4002導航至不同的網頁。所述網頁既可以與關聯于開始URL的網站相關聯,也可以不與之關聯。步驟4004接收對于web應用主頁按鈕的選擇。響應于接收到了對于web應用主頁按鈕的選擇,步驟4006會將站點模式瀏覽器導航至網站開始URL。例示系統
圖41圖示了可用于實現如上所述的不同實施例的例示計算設備4100。舉例來說,計算設備4100可以是圖I的計算設備102或是其他任何適當的計算設備。計算設備4100包括一個或多個處理器或處理單元4102、一個或多個存儲器和/或存儲組件4104、一個或多個輸入/輸出(I/O)設備4106以及允許不同的組件和設備相互通信的總線4108。總線4108代表任意的若干種總線結構中的一種或多種,這其中包括存儲器總線或存儲器控制器、外設總線、加速圖形端口以及使用了多種總線架構中的任何一種的處理器或局部總線。總線4108可以包括有線和/或無線總線。存儲器/存儲組件4104代表一個或多個計算機存儲媒體。組件4104可以包括易失媒體(例如隨機存取存儲器(RAM))和/或非易失媒體(例如只讀存儲器(ROM)、閃存、光盤、磁盤等等)。組件4104可以包括固定媒體(例如RAM、R0M、固定硬盤驅動器等等)以及可移除媒體(例如閃存驅動器、可移除硬盤驅動器、光盤等等)。—個或多個輸入/輸出設備4106允許用戶將命令和信息輸入計算設備4100,并且還允許將信息呈現給用戶和/或其他組件或設備。輸入設備的示例包括鍵盤、光標控制設備(例如鼠標)、麥克風、掃描儀等等。輸出設備的示例包括顯示設備(例如監視器或投影儀)、揚聲器、打印機、網卡等等。在這里,不同的技術可以在軟件或程序模塊的一般上下文中描述。通常,軟件包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。這些模塊和技術的實現可被保存在某種形式的計算機可讀媒體上或者在它們之間進行傳送。計算機可讀媒體可以是任何能被計算設備訪問的可用介質或媒體。作為示例而不是限制,計算機可讀媒體可以包括“計算機可讀存儲媒體”。“計算機可讀存儲媒體”包括以任何方法或技術實現的用于存儲諸如計算機可讀指令、數據結構、程序模塊或其他數據之類的信息的易失和非易失以及可移除和不可移除媒體。計算機可讀存儲媒體包括但不局限于RAM、ROM、EEPR0M、閃存或其他存儲器技術、CD-ROM、數字多用途盤(DVD )或其他光存儲裝置、磁帶盒、磁帶、磁盤存儲裝置或其他磁存儲設備、或是可以用于存儲期望信息并能被計算機訪問的其他任何介質。結論
不同實施例提供了一種允許終端用戶在其桌面上安裝web應用和網站的機制。根據一個或多個實施例,可以使用客戶端代碼來允許與網站關聯的開發人員定義與用戶交互相關聯的邊界,并且讓運行時引擎來實施這些邊界。在至少一些實施例中,開發人員可以通過JavaScript代碼來提供不同配置,以便用于創建開始菜單快捷方式,導航和所謂的跳轉列表整合,以及多種其他功能。雖然用特定于結構特征和/或方法操作的語言描述了本主題,但是應該理解,所附權利要求中定義的主題不必局限于上述具體特征或操作。相反,以上描述的具體特征和 操作是作為用于實現權利要求的例示形式公開的。
權利要求
1.一種計算機實現的方法,包括接收與將Web應用內容和/或狀態遷移到web瀏覽器相關聯的用戶輸入,所述web應用內容和/或狀態與整合在客戶機設備上的web應用相關聯;以及響應于所述接收,將web應用內容和/或狀態遷移到web瀏覽器。
2.權利要求I的計算機實現的方法,其中,所述接收包括通過所述web應用暴露的工具菜單接收用戶輸入。
3.權利要求I的計算機實現的方法,其中,所述遷移包括遷移與web應用標簽相關聯的內容和/或狀態。
4.權利要求I的計算機實現的方法,其中,所述遷移包括遷移與多個web應用標簽相關聯的內容和/或狀態。
5.權利要求I的計算機實現的方法,其中,所述遷移包括跨越進程邊界遷移內容和/或狀態。
6.權利要求I的計算機實現的方法,其中,所述遷移包括在相同的進程內遷移內容和/ 或狀態。
7.一個或多個包含了計算機可讀指令的計算機可讀存儲媒體,在被運行的時候,所述計算機可讀指令實現一種方法,該方法包括接收與將web應用內容和/或狀態遷移到web瀏覽器相關聯的用戶輸入,所述web應用內容和/或狀態與整合在客戶機設備上的web應用相關聯;保存與所述web應用內容相關聯的數據;以及使用保存的數據在web瀏覽器中呈現web應用內容。
8.權利要求7的一個或多個計算機可讀存儲媒體,其中所述接收包括通過所述web應用暴露的工具菜單接收用戶輸入。
9.權利要求7的一個或多個計算機可讀存儲媒體,其中所述保存包括使用與web瀏覽器相關聯的崩潰恢復系統來保存所述數據中的至少一些數據。
10.權利要求7的一個或多個計算機可讀存儲媒體,其中所述保存包括使用與web瀏覽器相關聯的崩潰恢復系統來保存所述數據中的至少一些數據,其中所述保存還包括使用共享存儲器保存所述數據中不同于所述至少一些數據的數據。
11.權利要求7的一個或多個計算機可讀存儲媒體,其中所述保存包括使用共享存儲器保存所述數據中的至少一些數據。
12.權利要求7的一個或多個計算機可讀存儲媒體,其中所述保存包括使用共享存儲器保存所述數據中的至少一些數據,其中所述數據中的所述至少一些數據包括證書和/或會話 cookies。
13.權利要求7的一個或多個計算機可讀存儲媒體,還包括確定web瀏覽器是否打開, 如果沒有打開,在使用保存的數據來呈現所述web應用內容之前啟動所述web瀏覽器。
14.權利要求7的一個或多個計算機可讀存儲媒體,其中,所述使用包括使用所述保存的數據呈現與單個標簽相關聯的web應用內容。
15.權利要求7的一個或多個計算機可讀存儲媒體,其中,所述使用包括使用所述保存的數據呈現與單個標簽相關聯的web應用內容,并且還包括響應于所述使用,關閉所述單個標簽。
全文摘要
不同實施例提供了一種允許終端用戶在其桌面上安裝web應用和網站的機制。根據一個或多個實施例,可以使用客戶端代碼來允許與網站關聯的開發人員定義與用戶交互相關聯的邊界,并且讓運行時引擎來實施這些邊界。在至少一些實施例中,開發人員可以通過JavaScript代碼和/或HTML標記來提供不同配置,以便用于創建開始菜單快捷方式、導航以及所謂的跳轉列表整合。
文檔編號G06F9/445GK102947792SQ201180028813
公開日2013年2月27日 申請日期2011年5月27日 優先權日2010年6月11日
發明者I.希勒里奧, A.H.馬列克, B.A.摩根, J.T.金 申請人:微軟公司