3

ファイルシステム API を使用してデバイスのファイルシステムにファイルを保存する Phonegap アプリがあります。

アプリを起動すると、ファイルシステムの容量がいくらか必要になりますwindow.requestFileSystemが、実行時に他のファイルをダウンロードすることができ、必要なディスク容量の合計を予測できません。

アイデアは、ダウンロードが開始される前に利用可能なスペースを確認し、スペースが十分でない場合はユーザーにメッセージをトリガーすることです。

Phonegap で残りの空き容量を確認する方法はありますか?

4

3 に答える 3

1

この投稿を見つける前に、これを行う独自の関数を作成し、制限に達するまで決定されたバイトでファイルシステムを取得し、空き領域を再帰的に想定します。コールバックのため、タイムアウトを 0 よりも大きく設定する必要があるかもしれません。私のテストでは、cordova.exec の方法と私の方法の違いは非常に小さく、制限の値を下げると精度が向上する可能性があります。

function availableBytes(callback, start, end){
    callback = callback == null ? function(){} : callback
    start = start == null ? 0 : start
    end = end == null ? 1 * 1024 * 1024 * 1024 * 1024 : end //starting with 1 TB
    limit = 1024 // precision of 1kb

    start_temp = start
    end_temp = end
    callback_temp = callback
    if (end - start < limit)
        callback(start)
    else{
        window.requestFileSystem(LocalFileSystem.PERSISTENT, parseInt(end_temp - ((end_temp - start_temp) / 2)), function(fileSystem){
            setTimeout(function(){
                availableBytes(callback_temp, parseInt(parseInt(end_temp - ((end_temp - start_temp) / 2))), end_temp)
            }, 0)
        }, function(){
            setTimeout(function(){
                availableBytes(callback_temp, start_temp, parseInt(end_temp - ((end_temp - start_temp) / 2)))
            }, 0)
        })
    }
}

次のように使用できます。

availableBytes(function(free_bytes){
    alert(free_bytes)
}
于 2014-07-09T18:09:41.173 に答える
0

Phonegap はこの機能を提供しません。解決策は、空き容量を確認する phonegap プラグインを自分で作成することです。

于 2013-03-11T10:58:25.857 に答える