OfflineManager implements a singleton (shared object) that manages offline packs.
All of this class’s instance methods are asynchronous, reflecting the fact that offline resources are stored in a database.
The shared object maintains a canonical collection of offline packs.
Creates and registers an offline pack that downloads the resources needed to use the given region offline.
Name | Type | Required | Description |
---|---|---|---|
options |
OfflineCreatePackOptions |
Yes |
Create options for a offline pack that specifices zoom levels, style url, and the region to download. |
progressListener |
Callback |
No |
Callback that listens for status events while downloading the offline resource. |
errorListener |
Callback |
No |
Callback that listens for status events while downloading the offline resource. |
const progressListener = (offlineRegion, status) => console.log(offlineRegion, status);
const errorListener = (offlineRegion, err) => console.log(offlineRegion, err);
await MapboxGL.offlineManager.createPack({
name: 'offlinePack',
styleURL: 'mapbox://...',
minZoom: 14,
maxZoom: 20,
bounds: [[neLng, neLat], [swLng, swLat]]
}, progressListener, errorListener)
Unregisters the given offline pack and allows resources that are no longer required by any remaining packs to be potentially freed.
Name | Type | Required | Description |
---|---|---|---|
name |
String |
Yes |
Name of the offline pack. |
await MapboxGL.offlineManager.deletePack('packName')
Retrieves all the current offline packs that are stored in the database.
Name | Type | Required | Description |
---|
const offlinePacks = await MapboxGL.offlineManager.getPacks();
Retrieves an offline pack that is stored in the database by name.
Name | Type | Required | Description |
---|---|---|---|
name |
String |
Yes |
Name of the offline pack. |
const offlinePack = await MapboxGL.offlineManager.getPack();
Sets the maximum number of Mapbox-hosted tiles that may be downloaded and stored on the current device.
The Mapbox Terms of Service prohibits changing or bypassing this limit without permission from Mapbox.
Name | Type | Required | Description |
---|---|---|---|
limit |
Number |
Yes |
Map tile limit count. |
MapboxGL.offlineManager.setTileCountLimit(1000);
Sets the value at which download status events will be sent over the React Native bridge.
These events happening very very fast default is 500ms.
Name | Type | Required | Description |
---|---|---|---|
throttleValue |
Number |
Yes |
event throttle value in ms. |
MapboxGL.offlineManager.setProgressEventThrottle(500);
Subscribe to download status/error events for the requested offline pack.
Note that createPack calls this internally if listeners are provided.
Name | Type | Required | Description |
---|---|---|---|
packName |
String |
Yes |
Name of the offline pack. |
progressListener |
Callback |
Yes |
Callback that listens for status events while downloading the offline resource. |
errorListener |
Callback |
Yes |
Callback that listens for status events while downloading the offline resource. |
const progressListener = (offlinePack, status) => console.log(offlinePack, status)
const errorListener = (offlinePack, err) => console.log(offlinePack, err)
MapboxGL.offlineManager.subscribe('packName', progressListener, errorListener)
Unsubscribes any listeners associated with the offline pack.
It's a good idea to call this on componentWillUnmount.
Name | Type | Required | Description |
---|---|---|---|
packName |
String |
Yes |
Name of the offline pack. |
MapboxGL.offlineManager.unsubscribe('packName')