IP Library Granted Patent US 10,365,916
Granted Patent B2
US 10,365,916 · App. 15/339,903 · Granted Jul 30, 2019

Providing access to a hybrid application offline

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 10,365,916
App. No.
15/339,903
Granted
Jul 30, 2019
Kind
B2
Abstract

Disclosed are systems, methods, and non-transitory computer-readable storage media for providing access to a hybrid web application offline. 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 computing device is offline and the hybrid application is invoked, the native layer can load from local storage a resource bundle including the web code needed to present the web view graphical user interface, and/or facilitate communication with the web server. Similarly, when the computing device is offline, the hybrid application can load previously stored content items into the web view from local storage through the native layer so that the user can work with the content items offline.

Claims (81)

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, the non-native 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, that a network connection to a server device that provides digital assets for the software application is unavailable; and

obtaining digital assets for presenting the web view from local storage on the computing device when the network connection is unavailable, wherein the digital assets comprise web code defining the web view for the software application previously received from the server device.

2. The method of claim 1 , wherein the digital assets further comprise one or more resources associated with the resource bundle.

3. The method of claim 1 , wherein the digital assets further comprise one or more content items associated with the software application.

4. The method of claim 1 , further comprising:

in response to determining that the network connection to the server device is unavailable, generating, by the web view, a request for a content item list identifying content items locally available on the computing device;

sending, by the web view, the request to the native component;

generating, by the native component, the content item list based on content items stored locally on the computing device;

sending, by the native component, the content item list to the web view; and

presenting, by the web view, the content item list on a display of the computing device.

5. The method of claim 1 , further comprising:

receiving, by the web view, user input selecting a content item;

in response to receiving the selection of the content item, generating, by the web view, a request for obtaining the content item from local storage on the computing device;

sending, by the web view, the request to the native component;

in response to receiving the request, obtaining, by the native component, the content item from local storage on the computing device;

sending, by the native component, the content item to the web view; and

presenting, by the web view, the content item on a display of the computing device.

6. The method of claim 5 , wherein sending the content item to the web view comprises:

encoding, by the native component, the content item into a string;

storing the string in a global variable of the software application; and

notifying the web view that a value of the global variable has changed.

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, the non-native 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, that a network connection to a server device that provides digital assets for the software application is unavailable; and

obtaining digital assets for presenting the web view from local storage on the computing device when the network connection is unavailable, wherein the digital assets comprise web code defining the web view for the software application previously received from the server device.

8. The non-transitory computer readable medium of claim 7 , wherein the digital assets further comprise one or more resources associated with the resource bundle.

9. The non-transitory computer readable medium of claim 7 , wherein the digital assets further comprise one or more content items associated with the software application.

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

in response to determining that the network connection to the server device is unavailable, generating, by the web view, a request for a content item list identifying content items locally available on the computing device;

sending, by the web view, the request to the native component;

generating, by the native component, the content item list based on content items stored locally on the computing device;

ending, by the native component, the content item list to the web view; and

presenting, by the web view, the content item list on a display of the computing device.

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

receiving, by the web view, user input selecting a content item;

in response to receiving the selection of the content item, generating, by the web view, a request for obtaining the content item from local storage on the computing device;

sending, by the web view, the request to the native component;

in response to receiving the request, obtaining, by the native component, the content item from local storage on the computing device;

sending, by the native component, the content item to the web view; and

presenting, by the web view, the content item on a display of the computing device.

12. The non-transitory computer readable medium of claim 11 , wherein sending the content item to the web view comprises:

encoding, by the native component, the content item into a string;

storing the string in a global variable of the software application; and

notifying the web view that a value of the global variable has changed.

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 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 computing device, the native component of the software application;

upon execution of the native component, loading, by the system, the non-native 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 system;

determining, by the system, that a network connection to a server device that provides digital assets for the software application is unavailable; and

obtaining digital assets for presenting the web view from local storage on the system device when the network connection is unavailable, wherein the digital assets include web code defining the web view for the software application previously received from the server device.

14. The system of claim 13 , wherein the digital assets further comprise one or more resources associated with the resource bundle.

15. The system of claim 13 , wherein the digital assets further comprise one or more content items associated with the software application.

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

in response to determining that the network connection to the server device is unavailable, generating, by the web view, a request for a content item list identifying content items locally available on the system;

sending, by the web view, the request to the native component;

generating, by the native component, the content item list based on content items stored locally on the system;

sending, by the native component, the content item list to the web view; and

presenting, by the web view, the content item list on a display of the system.

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

receiving, by the web view, user input selecting a content item;

in response to receiving the selection of the content item, generating, by the web view, a request for obtaining the content item from local storage on the system;

sending, by the web view, the request to the native component;

in response to receiving the request, obtaining, by the native component, the content item from local storage on the system;

sending, by the native component, the content item to the web view; and

presenting, by the web view, the content item on a display of the system.

18. The system of claim 17 , wherein sending the content item to the web view comprises:

encoding, by the native component, the content item into a string;

storing the string in a global variable of the software application; and

notifying the web view that a value of the global variable has changed.

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 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
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 041398/0919 →