IP Library Granted Patent US 9,804,834
Granted Patent B1
US 9,804,834 · App. 15/339,891 · Granted Oct 31, 2017

Automatically updating a hybrid application

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,804,834
App. No.
15/339,891
Granted
Oct 31, 2017
Kind
B1
Abstract

Disclosed are systems, methods, and non-transitory computer-readable storage media for automatically updating a hybrid web application. In some implementations, a computing device can be configured with a hybrid application that includes a native layer and a web view. The native layer can provide access to native features of the computing device while the web view can provide web client features, such as graphical user interfaces and server communication functionality. When the hybrid application is invoked, the native layer can load a resource bundle from local storage. The resource bundle can include the web code needed to present the web view graphical user interface, manage application data, and/or facilitate communication with the web server. To update the hybrid application, the application can download an updated resource bundle from the web server and reload the web code from the resource bundle.

Claims (74)

1. A method comprising:

storing, by a computing device, a software application in memory of the computing device, where the software application includes a native component and a resource bundle, where the native component is generated using technologies native to the computing device, and where the resource bundle includes non-native web code defining a web view for the software application;

receiving, by the computing device, user input selecting the software application;

in response to receiving the user input, executing, by the computing device, the native component of the software application;

upon execution of the native component, loading, by the computing device, web code from the stored resource bundle into the native component to generate the web view;

presenting the web view on a display of the computing device;

determining, by the computing device, a first version identifier for the stored resource bundle;

sending, by the computing device, a message from the web view to the server device including the first version identifier, where the server device determines whether the first version identifier corresponds to the latest version of the resource bundle; and

receiving, by the computing device from server device, update data when the first version identifier is different than a second version identifier corresponding to a latest version of the resource bundle; and

while the software application continues to execute:

automatically updating, by the computing device, the stored resource bundle to correspond to the latest version of the resource bundle based on the update data;

automatically reloading, by the computing device, web code from the updated resource bundle into the native component to generate an updated web view; and

presenting the updated web view on a display of the computing device.

2. The method of claim 1 , further comprising:

determining, based on the update data, that the latest version of the resource bundle includes an updated version of a first resource in the stored resource bundle;

receiving the updated version of the first resource from the server device; and

replacing a stored version of the first resource with the updated version of the first resource on the computing device.

3. The method of claim 2 , further comprising:

after replacing the stored version of the first resource with the updated version of the first resource and while the software application continues to execute, reloading the web code from the stored resource bundle, including the updated version of the first resource, into the native component to generate an updated web view; and

presenting the updated web view on a display of the computing device.

4. The method of claim 1 , wherein the native component continues to execute while the stored resource bundle is updated on the computing device.

5. The method of claim 1 , wherein the native component remains unchanged when the stored resource bundle is updated on the computing device.

6. The method of claim 3 , wherein the updated version of the first resource is received by the web view, and further comprising:

receiving, by the native component, the update version of the first resource from the web view when the web view navigates to a particular web address; and

storing, by the native component, the updated version of the first resource received from the web view in the stored resource bundle.

7. A non-transitory computer readable medium including one or more sequences of instructions that, when executed by one or more processors, cause the processors to perform operations comprising:

storing, by a computing device, a software application in memory of the computing device, where the software application includes a native component and a resource bundle, where the native component is generated using technologies native to the computing device, and where the resource bundle includes non-native web code defining a web view for the software application;

executing, by the computing device, the native component of the software application;

upon execution of the native component, loading, by the computing device, web code from the stored resource bundle into the native component to generate the web view;

presenting the web view on a display of the computing device;

determining, by the computing device, a first version identifier for the stored resource bundle;

sending, by the computing device, a message from the web view to the server device including the first version identifier, where the server device determines whether the first version identifier corresponds to the latest version of the resource bundle; and

receiving, by the computing device from server device, update data when the first version identifier is different than a second version identifier corresponding to a latest version of the resource bundle; and

while the software application continues to execute:

automatically updating, by the computing device, the stored resource bundle to correspond to the latest version of the resource bundle based on the update data;

automatically reloading, by the computing device, web code from the updated resource bundle into the native component to generate an updated web view; and

presenting the updated web view on a display of the computing device.

8. The non-transitory computer readable medium of claim 7 , wherein the instructions cause the processors to perform operations comprising:

determining, based on the update data, that the latest version of the resource bundle includes an updated version of a first resource in the stored resource bundle;

receiving the updated version of the first resource from the server device; and

replacing a stored version of the first resource with the updated version of the first resource on the computing device.

9. The non-transitory computer readable medium of claim 8 , wherein the instructions cause the processors to perform operations comprising:

after replacing the stored version of the first resource with the updated version of the first resource and while the software application continues to execute, reloading the web code from the stored resource bundle, including the updated version of the first resource, into the native component to generate an updated web view; and

presenting the updated web view on a display of the computing device.

10. The non-transitory computer readable medium of claim 7 , wherein the native component continues to execute while the stored resource bundle is updated on the computing device.

11. The non-transitory computer readable medium of claim 7 , wherein the native component remains unchanged when the stored resource bundle is updated on the computing device.

12. The non-transitory computer readable medium of claim 9 , wherein the updated version of the first resource is received by the web view, and wherein the instructions cause the processors to perform operations comprising:

receiving, by the native component, the update version of the first resource from the web view when the web view navigates to a particular web address; and

storing, by the native component, the updated version of the first resource received from the web view in the stored resource bundle.

13. A system comprising:

one or more processors; and

a non-transitory computer readable medium including one or more sequences of instructions that, when executed by the one or more processors, cause the processors to perform operations comprising:

storing, by the system, a software application in memory of the computing device, where the software application includes a native component and a resource bundle, where the native component is generated using technologies native to the computing device, and where the resource bundle includes non-native web code defining a web view for the software application;

executing, by the system, the native component of the software application;

upon execution of the native component, loading, by the system, web code from the stored resource bundle into the native component to generate the web view;

presenting the web view on a display of the computing device;

determining, by the computing device, a first version identifier for the stored resource bundle;

sending, by the computing device, a message from the web view to the server device including the first version identifier, where the server device determines whether the first version identifier corresponds to the latest version of the resource bundle; and

receiving, by the computing device from server device, update data when the first version identifier is different than a second version identifier corresponding to a latest version of the resource bundle; and

while the software application continues to execute:

based on the update date, determining one or more resources in the resource bundle to update;

obtaining the one or more resources from the server device;

automatically updating, by the system, the stored resource bundle to include the one or more resources;

automatically reloading, by the system, web code from the updated resource bundle into the native component to generate an updated web view; and

presenting the updated web view on a display of the computing device.

14. The system of claim 13 , wherein the instructions cause the processors to perform operations comprising:

determining, based on the update data, that the latest version of the resource bundle includes an updated version of a first resource in the stored resource bundle;

receiving the updated version of the first resource from the server device; and

replacing a stored version of the first resource with the updated version of the first resource on the computing device.

15. The system of claim 14 , wherein the instructions cause the processors to perform operations comprising:

after replacing the stored version of the first resource with the updated version of the first resource and while the software application continues to execute, reloading the web code from the stored resource bundle, including the updated version of the first resource, into the native component to generate an updated web view; and

presenting the updated web view on a display of the computing device.

16. The system of claim 13 , wherein the native component continues to execute while the stored resource bundle is updated on the computing device.

17. The system of claim 13 , wherein the native component remains unchanged when the stored resource bundle is updated on the computing device.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
SECURITY INTEREST Recorded Apr 14, 2017
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042254/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2017
From: LOPYREV, ANTON; GILL, PRABHDEEP; RAJU, ASHOK; MENDIOLA, IAN
To: DROPBOX, INC.
Reel/Frame 041400/0435 →