# US 2019/0171440 A1 · Providing access to a hybrid application offline

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0171440 A1
- Document ID: US20190171440A1
- Status: Published application
- Kind: A1
- Application number: 16/269,048
- Filed: 2019-02-06
- Published: 2019-06-06
- Earliest claimed: 2016-04-19
- Assignees: Dropbox, Inc.
- Applicants: Dropbox, Inc.
- Inventors: Anton LOPYREV; Prabhdeep Gill; Ashok Raju; Ian Mendiola
- Web page: https://patentgrep.com/patent/US20190171440A1

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/656: while running
- G06F 9/445: Program loading or initiating (bootstrapping G06F9/4401; security arrangements for program loading or initiating G06F21/57)
- G06F 9/451: Execution arrangements for user interfaces
- G06F 9/45504: {Abstract machines for program code execution, e.g. Java virtual machine [JVM], interpreters or emulators}
- G06F 9/54: Interprogram communication
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- H04L 47/803: {Application aware}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F 3/04842: Selection of displayed objects or displayed text elements (G06F3/0482 takes precedence)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 1

A method, comprising:
executing, by a computing device, a native component of a software application stored in memory of the computing device, wherein the native component is generated using technology native to the computing device and wherein the software application includes a resource bundle having non-native web code defining a web view for the software application;
loading, by the computing device, the non-native web code from the resource bundle into the native component to generate the web view;
determining, by the computing device, that a network connection to a server device that provides digital assets for the software application is unavailable;
obtaining, by the computing device, a digital asset for presenting the web view from local storage on the computing device when the network connection is unavailable, wherein the digital asset comprises web code defining the web view for the software application; and
presenting, by the computing device, the web view using the digital asset.

### Claim 2 (depends on 1)

The method of claim 1, wherein loading, by the computing device, the non-native web-code from the resource bundle into the native component to generate the web view, comprises:
generating a global variable for sending one or more messages between the native component and the web view.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
obtaining, by the computing device, a content item list identifying content items locally available; and
presenting, by the computing device, the content item list via the web view.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
receiving, by the computing device via the web view, user input selecting a content item;
obtaining, by the computing system, the content item from the local storage; and
presenting, by the computing system, the content item via the web view.

### Claim 5 (depends on 1)

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

### Claim 6 (depends on 1)

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

### Claim 7 (depends on 1)

The method of claim 1, wherein the digital assets include web code defining the web view for the software application previously received from the server device.

### Claim 8

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:
executing, by a computing device, a native component of a software application stored in memory of the computing device, wherein the native component is generated using technology native to the computing device and wherein the software application includes a resource bundle having non-native web code defining a web view for the software application;
loading, by the computing device, the non-native web code from the resource bundle into the native component to generate the web view;
determining, by the computing device, that a network connection to a server device that provides digital assets for the software application is unavailable;
obtaining, by the computing device, a digital asset for presenting the web view from local storage on the computing device when the network connection is unavailable, wherein the digital asset comprises web code defining the web view for the software application; and
presenting, by the computing device, the web view using the digital asset.

### Claim 9 (depends on 8)

The non-transitory computer readable medium of claim 8, wherein loading, by the computing device, the non-native web-code from the resource bundle into the native component to generate the web view, comprises:
generating a global variable for sending one or more messages between the native component and the web view.

### Claim 10 (depends on 8)

The non-transitory computer readable medium of claim 8, further comprising:
obtaining, by the computing device, a content item list identifying content items locally available; and
presenting, by the computing device, the content item list via the web view.

### Claim 11 (depends on 8)

The non-transitory computer readable medium of claim 8, further comprising:
receiving, by the computing device via the web view, user input selecting a content item;
obtaining, by the computing system, the content item from the local storage; and
presenting, by the computing system, the content item via the web view.

### Claim 12 (depends on 8)

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

### Claim 13 (depends on 8)

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

### Claim 14 (depends on 8)

The non-transitory computer readable medium of claim 8, wherein the digital assets include web code defining the web view for the software application previously received from the server device.

### Claim 15

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:
executing, by a computing device, a native component of a software application stored in memory of the computing device, wherein the native component is generated using technology native to the computing device and wherein the software application includes a resource bundle having non-native web code defining a web view for the software application;
loading, by the computing device, the non-native web code from the resource bundle into the native component to generate the web view;
determining, by the computing device, that a network connection to a server device that provides digital assets for the software application is unavailable;
obtaining, by the computing device, a digital asset for presenting the web view from local storage on the computing device when the network connection is unavailable, wherein the digital asset comprises web code defining the web view for the software application; and
presenting, by the computing device, the web view using the digital asset.

### Claim 16 (depends on 15)

The system of claim 15, wherein loading the non-native web-code from the resource bundle into the native component to generate the web view, comprises:
generating a global variable for sending one or more messages between the native component and the web view.

### Claim 17 (depends on 15)

The system of claim 15, wherein the instructions further cause the processors to perform operations comprising:
obtaining a content item list identifying content items locally available; and
presenting the content item list via the web view.

### Claim 18 (depends on 15)

The system of claim 15, wherein the instructions further cause the processors to perform operations comprising:
receiving, via the web view, user input selecting a content item;
obtaining the content item from the local storage; and
presenting the content item via the web view.

### Claim 19 (depends on 15)

The system of claim 15, wherein the digital assets include one or more resources associated with the resource bundle.

### Claim 20 (depends on 15)

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