标签: offline

MapBox GL Android:已下载自定义图块源的离线地图但未使用

对于我们的应用程序,我目前正在将地图框与自定义地图图块表面集成(如此处所述。使用有效的互联网连接,一切都运行良好,OfflineManagerOfflineTilePyramidRegionDefinition可以下载图块并在 mbgl-offline.db 中找到它们,但它们似乎未在应用程序中使用。据报告,离线区域已完成,但只是不显示。据我了解离线文档,下载图块后,其他一切都是“放手”。

我尝试了几个不同的来源(例如,OpenMapTiles.org),因为我们仍在建立自己的地图切片服务器的过程中。

我在这里错过了什么吗?我真的很感谢任何线索。

最好的,菲尔

更新: 这里有更多信息:

XML 布局

<com.mapbox.mapboxsdk.maps.MapView
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    mapbox:center_latitude="51"
    mapbox:center_longitude="7"
    mapbox:style_url="http://demo.tileserver.org/styles/klokantech-basic.json"
    mapbox:zoom="1"/>
Run Code Online (Sandbox Code Playgroud)

下载地图数据的代码:

// Set up the OfflineManager
OfflineManager offlineManager = OfflineManager.getInstance(context);

// Create a bounding box for the offline region
LatLngBounds latLngBounds = new LatLngBounds.Builder()
        .include(new LatLng(6, 50))
        .include(new LatLng(8, 52))
        .build();

// Define the offline region
OfflineTilePyramidRegionDefinition definition = new OfflineTilePyramidRegionDefinition(
        mapView.getStyleUrl(),
        latLngBounds,
        0,
        9, // also tried other zoom levels
        context.getResources().getDisplayMetrics().density); …
Run Code Online (Sandbox Code Playgroud)

android offline mapbox mbtiles mapbox-gl

5
推荐指数
1
解决办法
1905
查看次数

适用于 Android 的 Firebase 数据库 - 使用持久性在离线时写入事件

如标题所述,我正在使用 Firebase 实时数据库,并启用了持久性

正如指南中所述,

通过启用持久性,Firebase 实时数据库客户端在联机时同步的任何数据都会持久保存到磁盘,并且即使在用户或操作系统重新启动应用程序时也可以脱机使用。这意味着您的应用程序可以像在线一样使用存储在缓存中的本地数据。侦听器回调将继续触发本地更新

虽然ValueEventListener和每个读取侦听器都会发生这种情况,但我找不到一种方法使其也适用于写入操作。这是我的数据库助手类的片段:

    DatabaseReference userRef = root.child("users").child(user.getUid());
    userRef.setValue(user).addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void result) {
            //handle success event
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            //handle failure event
        }
    });
Run Code Online (Sandbox Code Playgroud)

即使启用了持久性,这应该使数据库以“反应式方式”运行,这两个侦听器也不会触发,直到数据库再次上线并最终将更新推送到服务器。

这并不是我真正所希望的,因为我预计一旦数据在本地缓存,该事件就会被触发。我知道我可以简单地忽略这些事件并假装它成功了,但我想知道,我是否错过了什么?有没有办法在数据被缓存后立即触发事件?

android persistence offline firebase firebase-realtime-database

5
推荐指数
1
解决办法
1187
查看次数

实施 AVAssetDownloadURLSession 以下载 HLS 流时出错

我正在尝试为流应用程序实现离线模式。目标是能够在用户的设备上下载 HLS 流,以便即使在用户离线时也能观看流。

我最近偶然发现了这个教程。它似乎回答了我试图实施的确切要求,但我在尝试使其工作时遇到了问题。

我创建了一个小的 DownloadManager 来应用教程的逻辑。这是我的单身课程:

import AVFoundation

class DownloadManager:NSObject {

static var shared = DownloadManager()
private var config: URLSessionConfiguration!
private var downloadSession: AVAssetDownloadURLSession!

override private init() {
    super.init()
    config = URLSessionConfiguration.background(withIdentifier: "\(Bundle.main.bundleIdentifier!).background")
    downloadSession = AVAssetDownloadURLSession(configuration: config, assetDownloadDelegate: self, delegateQueue: OperationQueue.main)
}

func setupAssetDownload(_ url: URL) {
    let options = [AVURLAssetAllowsCellularAccessKey: false]

    let asset = AVURLAsset(url: url, options: options)

    // Create new AVAssetDownloadTask for the desired asset
    let downloadTask = downloadSession.makeAssetDownloadTask(asset: asset,
                                                             assetTitle: "Test Download",
                                                             assetArtworkData: nil, …
Run Code Online (Sandbox Code Playgroud)

offline download http-live-streaming ios swift

5
推荐指数
0
解决办法
1993
查看次数

使用 Electron 和 sqlite 进行 Knex 迁移?

我正在使用 sqlite 作为我的数据库,用于使用电子制作的离线应用程序。为了创建数据库,我使用了 knex 迁移。问题是,它会在开发中运行良好,我会迁移数据库并启动电子进程。

但是在为生产构建打包应用程序时,我需要在第一次启动时在客户端计算机上运行迁移。这样就可以创建数据库,并且当有应用程序更新时,新的迁移将保持数据库更新。

什么是合适的方法。我如何在应用程序启动时运行迁移,或者如何将迁移保留在包中。不是所有的代码都保存在app.asar中吗?迁移代码会从那里运行吗?

此外,应该在客户端计算机中的何处创建数据库?

sqlite offline reactjs knex.js electron

5
推荐指数
1
解决办法
940
查看次数

2018年如何检测浏览器是否离线?

曾经存在用于检测连接的offline.js,但该项目不再维护。此外,众所周知,浏览器的“navigator.onLine”属性不可靠

用于主动检测浏览器在线状态的最佳/最新方法是什么,与现代浏览器(包括移动设备浏览器)兼容,可以在在线状态发生变化时引发各种事件?我需要自己写这个,还是重新发明轮子?

请注意,我的用户群中没有人会为了联机/脱机而更改浏览器中的“脱机工作”设置。相反,他们会拔掉网线,断开 wifi 网络,开车到没有信号的地方等等。

我的想法是简单地设置一个超时以重复对我服务器上的 URL 进行 AJAX 调用,并简单地将“在线”变量设置为 true/false 以及根据 AJAX 的错误/成功调用在线/离线回调函数称呼。这是推荐的方式吗?

javascript browser offline offline-browsing

5
推荐指数
1
解决办法
2071
查看次数

Firebase Firestore:离线添加数据后获取文档 ID

我像这样将数据添加到 Firestore:

db
    .collection('foo')
    .add({foo: 'bar'})
    .then(docRef => {
      console.log('Added Foo: ', docRef.id)
      // do some stuff here with the newly created foo and it's id.
    })
    .catch(console.error)
Run Code Online (Sandbox Code Playgroud)

创建文档后,我想使用新文档或特别是它的 ID。该文档使用有效 ID 存储在本地数据库中。

但是如何在创建文档后获取 ID?在数据与服务器同步之前,承诺不会被解析。

javascript offline firebase google-cloud-firestore

5
推荐指数
2
解决办法
8483
查看次数

如何在不提供特定文件夹和文件在线访问的情况下使用IPFS?

IPFS 提供了有用的缓存机制。我的目标是使用 IPFS 缓存机制而不提供在线访问。

即使我不ipfs-hash与其他用户共享文件的,我也想禁止其他用户访问/提取我存储在本地 IPFS 目录中的文件的可能性,如果他们找到文件ipfs-hash/文件夹的文件。

=>如果我不运行,ipfs daemon这会是一个解决方案吗?如果是,问题在于我可能需要使用某些文件ipfs daemon与其他用户共享它们,或者我也可能需要从其他节点提取文件。问题出现了,当我开始运行 ipfs 守护进程时,这将允许访问存储在本地 ipfs 文件夹中的所有文件。

[问]所以基本上我想用作IPFS离线缓存工具,并且不为我存储在 IPFS 中的某些特定文件夹提供外部访问。即使 ipfs 守护进程正在运行,我是否可以禁用我决定的特定文件/文件夹的在线访问?

例如,我有多个文件夹,我想将它们存储在本地 IPFS 文件夹下,谁拥有这些ipfs-hash文件夹就无法提取这些文件。即使 ipfs 守护进程正在运行,我是否可以强制存储在本地 IPFS 文件夹中的那些文件夹没有外部访问权限?并提供其他一些文件夹的在线访问。


作为解决方案,我可以在我的机器上运行两个具有不同本地存储库的不同 IPFS 进程。第一个对外部开放,可以从其他节点等拉取(运行ipfs daemon);但 other 没有任何外部访问权限,也没有人可以访问其文件。

caching offline ipfs

5
推荐指数
2
解决办法
1927
查看次数

在离线机器上创建 NPM 注册表的副本?

因此,我需要在独立网络上的独立机器上进行一些新的 Web 开发。这个独立的网络无法访问互联网,但上面有很多在 Windows Server 环境中运行的机器。

我有一台可访问互联网的机器,我可以用它下载 node 并获取包,但我需要能够将包一起传输到独立机器上。

这样做的最佳方法是什么?我已经阅读了一些关于在本地机器上复制注册表以便缓存它的文档,但是我如何使用该缓存并通过 USB 将其移植到这个独立网络?

有没有其他方法来处理这个问题?

之前在另一个项目中,我们使用 Verdaccio 建立了自己的私有 npm 存储库,并将我们自己的 npm 模块发布到该存储库。我可以轻松地设置它,然后通过节点模块的 tar 或 zip 文件进行移植并以这种方式发布它们。但问题又来了,我如何获得我需要的大量节点包?

我需要知道的主要事情是如何获取这个本地缓存的 npm 注册表,并在复制所有模块后将其设置在独立机器上。我可以在 Internet 上完成所有这些操作,但是如何在服务器上传输和复制所有内容?

offline node.js npm server

5
推荐指数
1
解决办法
1462
查看次数

如何打开本地pdf IOS React Native

我想打开一个以前下载并存储在手机中的pdf文件。

本地 url 文件:file:///var/mobile/Containers/Data/Application/ ... 更多 url ... /example.pdf

我正在使用 Expo 库在 Android 中打开:

if (Platform.OS !== 'ios') {
    FileSystem.getContentUriAsync(pdfLocalUrl).then((cUri) => {
      IntentLauncher.startActivityAsync('android.intent.action.VIEW', {
        data: cUri.uri,
        flags: 1,
        type: 'application/pdf',
      });
    });
  }
Run Code Online (Sandbox Code Playgroud)

我没有找到在 ios 中打开的方法。找不到 webView 和 linking.OpenUrl,因为需要一个有效的 web url。

Linking.openURL(pdfLocalUrl);
Run Code Online (Sandbox Code Playgroud)

带有 gdoc 的 webView 也不起作用:

renderPdfOffline = () => {
const html = 'https://drive.google.com/viewerng/viewer?embedded=true&url=';
return (
  <WebView
    style={{ flex: 1 }}
    scalesPageToFit={true}
    source={{
      uri: html + this.state.pdfUrl,
    }}
  ></WebView>
);
Run Code Online (Sandbox Code Playgroud)

};

pdf offline native local reactjs

5
推荐指数
0
解决办法
552
查看次数

我如何离线获取颤振网站文档

我想使用HTTrack网站复制器使Flutter文档站点脱机,但我只得到了没有 css、js 和设计的 html。但是当我尝试其他网站时它有效吗?还有其他方法吗?

documentation offline dart flutter

5
推荐指数
1
解决办法
1451
查看次数