IP Library Granted Patent US 11,740,891
Granted Patent B2
US 11,740,891 · App. 17/533,436 · Granted Aug 29, 2023

Providing access to a hybrid application offline

Inventors: Anton Lopyrev (San Francisco, CA); Prabhdeep Gill (San Francisco, CA); Ashok Raju (San Francisco, CA); Ian Mendiola (San Francisco, CA)
Assignee: Dropbox, Inc.
G06F8/65G06F8/656G06F9/445G06F9/451G06F9/45504G06F9/54G06F9/546H04L47/803H04L67/02H04L67/1097H04L67/34G06F3/04842
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 11,740,891
App. No.
17/533,436
Granted
Aug 29, 2023
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 (49)

1. A method, comprising:

executing, by a computing device, a software application comprising a native component for managing resources locally and a resource bundle having non-native web code defining a web view for the software application;

upon executing the software application,

loading, by the native component, the web view, and

loading, by the web view, the resource bundle stored local to the computing device, the resource bundle comprising a native configuration file that identifies a current version of the software application installed on the computing device;

receiving, by the web view, an updated native configuration file corresponding to an updated version of the software application;

storing, by the native component, the updated native configuration file locally to the computing device;

upon receiving the updated native configuration file, determining, by the web view, that a resource in the resource bundle should be updated, the determining comprising comparing the updated native configuration file to the native configuration file to determine which resources have changed; and

based on the determining, requesting, by the web view, an updated resource corresponding to the resource that should be updated.

2. The method of claim 1 , further comprising:

obtaining, by the web view, the current version of the software application from the resource bundle.

3. The method of claim 2 , further comprising:

requesting, by the web view, version update information for the software application, the requesting comprising the current version of the software application installed on the computing device.

4. The method of claim 1 , wherein comparing the updated native configuration file to the native configuration file to determine which resources have changed comprises:

comparing a first timestamp of the resource in the native configuration file to a second timestamp of the resource in the updated native configuration file.

5. The method of claim 1 , wherein comparing the updated native configuration file to the native configuration file to determine which resources have changed comprises:

identifying that the resource does not exist in the native configuration file.

6. A non-transitory computer readable medium comprising one or more sequences of instructions, which, when executed by one or more processors, causes a computing system to perform operations comprising:

executing, by the computing system, a software application comprising a native component for managing resources locally and a resource bundle having non-native web code defining a web view for the software application;

upon executing the software application,

loading, by the native component, the web view, and

loading, by the web view, the resource bundle stored local to the computing system, the resource bundle comprising a native configuration file that identifies a current version of the software application installed on the computing system;

receiving, by the web view, an updated native configuration file corresponding to an updated version of the software application;

causing, by the web view, the updated native configuration file to be stored locally to the computing system;

upon receiving the updated native configuration file, determining, by the web view, that a resource in the resource bundle should be updated, the determining comprising comparing the updated native configuration file to the native configuration file to determine which resources have changed; and

based on the determining, requesting, by the web view, an updated resource corresponding to the resource that should be updated.

7. The non-transitory computer readable medium of claim 6 , further comprising:

obtaining, by the web view, the current version of the software application from the resource bundle.

8. The non-transitory computer readable medium of claim 7 , further comprising:

requesting, by the web view, version update information for the software application, the requesting comprising the current version of the software application installed on the computing system.

9. The non-transitory computer readable medium of claim 6 , wherein comparing the updated native configuration file to the native configuration file to determine which resources have changed comprises:

comparing a first timestamp of the resource in the native configuration file to a second timestamp of the resource in the updated native configuration file.

10. The non-transitory computer readable medium of claim 6 , wherein comparing the updated native configuration file to the native configuration file to determine which resources have changed comprises:

identifying that the resource does not exist in the native configuration file.

11. A system comprising:

one or more processors; and

a memory having programming instructions stored thereon, which, when executed by the one or more processors, causes the system to perform operations comprising:

executing, by the system, a software application comprising a native component for managing resources locally and a resource bundle having non-native web code defining a web view for the software application;

upon executing the software application,

loading, by the native component, the web view, and

loading, by the web view, the resource bundle stored local to the system, the resource bundle comprising a native configuration file that identifies a current version of the software application installed on the system;

receiving, by the web view, an updated native configuration file corresponding to an updated version of the software application;

causing, by the web view, the updated native configuration file to be stored locally to the system;

upon receiving the updated native configuration file, determining, by the web view, that a resource in the resource bundle should be updated, the determining comprising:

comparing the updated native configuration file to the native configuration file to determine which resources have changed; and based on the determining, requesting, by the web view, an updated resource corresponding to the resource that should be updated.

12. The system of claim 11 , wherein comparing the updated native configuration file to the native configuration file to determine which resources have changed comprises:

comparing a first timestamp of the resource in the native configuration file to a second timestamp of the resource in the updated native configuration file.

13. The system of claim 11 , wherein comparing the updated native configuration file to the native configuration file to determine which resources have changed comprises:

identifying that the resource does not exist in the native configuration file.

Assignments (2)
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2021
From: LOPYREV, ANTON; GILL, PRABHDEEP; RAJU, ASHOK; MENDIOLA, IAN
To: DROPBOX, INC.
Reel/Frame 058194/0675 →