尝试检查文件是否存在,如果没有下载

Trying to check if a file is there, if not download it

本文关键字:如果 有下载 存在 是否 检查 文件      更新时间:2023-09-26

嗨,伙计们,我正在尝试使用这个简单的代码来检查文件是否存在,如果没有下载它。但它始终只会向我显示"正在检查数据文件"。

可能是什么原因?

我在这里找到了代码:http://www.raymondcamden.com/2014/07/01/Cordova-样本检查文件和下载,如果它不存在

索引.html

 <!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title></title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width">
        <link rel="stylesheet" type="text/css" href="css/app.css" />
    </head>
    <body>
    <h2>My App</h2>
    <div id="status"></div>
    <script src="cordova.js"></script>  
    <script src="js/app.js"></script>
    </body>
</html>

应用.js

document.addEventListener("deviceready", init, false);
//The directory to store data
var store;
//Used for status updates
var $status;
//URL of our asset
var assetURL = "https://raw.githubusercontent.com/cfjedimaster/Cordova-Examples/master/readme.md";
//File name of our important data file we didn't ship with the app
var fileName = "mydatafile.txt";
function init() {
    $status = document.querySelector("#status");
    $status.innerHTML = "Checking for data file.";
    store = cordova.file.dataDirectory;
    //Check for the file. 
    window.resolveLocalFileSystemURL(store + fileName, appStart, downloadAsset);
}
function downloadAsset() {
    var fileTransfer = new FileTransfer();
    console.log("About to start transfer");
    fileTransfer.download(assetURL, store + fileName, 
        function(entry) {
            console.log("Success!");
            appStart();
        }, 
        function(err) {
            console.log("Error");
            console.dir(err);
        });
}
//I'm only called when the file exists or has been downloaded.
function appStart() {
    $status.innerHTML = "App ready!";
}

这些只是 android Studio 中 logcat 输出的最后一行,因为在这里插入所有内容太多了:

10-22 16:46:40.927    2315-2315/? E/PGA﹕ PgaUtilsParamSize: unsuported param GL_CULL_FACE, assuming size 1
10-22 16:46:40.927    2315-2315/? E/PGA﹕ PgaUtilsParamSize: unsuported param GL_DITHER, assuming size 1
-22 16:47:48.367  30178-30897/? D/dalvikvm﹕ GC_FOR_ALLOC freed 736K, 29% free 2727K/3840K, paused 0ms, total 0ms
10-22 16:48:43.477  30178-30897/? D/dalvikvm﹕ GC_FOR_ALLOC freed 736K, 29% free 2727K/3840K, paused 0ms, total 0ms
10-22 16:48:48.827   30217-2359/? D/BstCommandProcessor-httpd﹕ command: ping
10-22 16:48:48.827   30217-2359/? D/BstCommandProcessor-httpd﹕ response: {"result":"ok"}
10-22 16:48:48.847   30217-2360/? D/BstCommandProcessor-httpd﹕ command: clipboard (with args)
10-22 16:48:48.847   30217-2360/? D/BstCommandProcessor-httpd﹕ response: {"result":"ok"}
10-22 16:49:38.587  30178-30897/? D/dalvikvm﹕ GC_FOR_ALLOC freed 736K, 29% free 2727K/3840K, paused 0ms, total 0ms
10-22 16:50:33.697  30178-30897/? D/dalvikvm﹕ GC_FOR_ALLOC freed 736K, 29% free 2727K/3840K, paused 0ms, total 0ms
10-22 16:50:42.037   30217-2361/? D/BstCommandProcessor-httpd﹕ command: ping
10-22 16:50:42.037   30217-2361/? D/BstCommandProcessor-httpd﹕ response: {"result":"ok"}
10-22 16:50:42.257   30217-2362/? W/BstCommandProcessor-httpd﹕ Reached maxLineLength limit while reading the content of a file
10-22 16:50:42.257   30217-2362/? D/BstCommandProcessor-httpd﹕ command: clipboard (with args)
10-22 16:50:42.267   30217-2362/? D/dalvikvm﹕ GC_FOR_ALLOC freed 1969K, 24% free 6849K/8896K, paused 0ms, total 0ms
10-22 16:50:42.277   30217-2362/? D/dalvikvm﹕ GC_FOR_ALLOC freed 1557K, 24% free 6850K/9004K, paused 10ms, total 10ms
10-22 16:50:42.287   30217-2362/? D/dalvikvm﹕ GC_FOR_ALLOC freed 1318K, 24% free 6854K/9004K, paused 10ms, total 10ms
10-22 16:50:42.297   30217-2362/? D/dalvikvm﹕ GC_FOR_ALLOC freed 1230K, 24% free 6851K/9012K, paused 10ms, total 10ms
10-22 16:50:42.307   30217-2362/? D/dalvikvm﹕ GC_FOR_ALLOC freed 1215K, 24% free 6852K/9012K, paused 0ms, total 0ms
10-22 16:50:42.307   30217-2362/? D/dalvikvm﹕ GC_FOR_ALLOC freed 1161K, 24% free 6858K/9012K, paused 0ms, total 0ms
10-22 16:50:42.317   30217-2362/? D/dalvikvm﹕ GC_FOR_ALLOC freed 1101K, 24% free 6862K/9012K, paused 10ms, total 10ms
10-22 16:50:42.317   30217-2362/? D/BstCommandProcessor-httpd﹕ response: {"result":"ok"}
10-22 16:51:28.807  30178-30897/? D/dalvikvm﹕ GC_FOR_ALLOC freed 736K, 29% free 2727K/3840K, paused 0ms, total 0ms
10-22 16:52:00.027  30100-30111/? D/dalvikvm﹕ GC_FOR_ALLOC freed 7538K, 38% free 12639K/20212K, paused 10ms, total 20ms
10-22 16:52:23.917  30178-30897/? D/dalvikvm﹕ GC_FOR_ALLOC freed 736K, 29% free 2727K/3840K, paused 0ms, total 0ms
10-22 16:53:19.027  30178-30897/? D/dalvikvm﹕ GC_FOR_ALLOC freed 736K, 29% free 2727K/3840K, paused 0ms, total 0ms
10-22 16:53:26.057   30217-2363/? D/BstCommandProcessor-httpd﹕ command: ping
10-22 16:53:26.057   30217-2363/? D/BstCommandProcessor-httpd﹕ response: {"result":"ok"}
10-22 16:53:26.077   30217-2364/? W/BstCommandProcessor-httpd﹕ Reached maxLineLength limit while reading the content of a file
10-22 16:53:26.077   30217-2364/? D/BstCommandProcessor-httpd﹕ command: clipboard (with args)
10-22 16:53:26.097   30217-2364/? D/dalvikvm﹕ GC_FOR_ALLOC freed 1795K, 25% free 6825K/9020K, paused 10ms, total 10ms
10-22 16:53:26.097   30217-2364/? D/dalvikvm﹕ GC_FOR_ALLOC freed 1489K, 25% free 6824K/9020K, paused 0ms, total 0ms
10-22 16:53:26.117   30217-2364/? D/dalvikvm﹕ GC_FOR_ALLOC freed 1352K, 25% free 6825K/9020K, paused 10ms, total 10ms
10-22 16:53:26.117   30217-2364/? D/dalvikvm﹕ GC_FOR_ALLOC freed 1251K, 25% free 6836K/9020K, paused 0ms, total 0ms
10-22 16:53:26.127   30217-2364/? D/BstCommandProcessor-httpd﹕ response: {"result":"ok"}
10-22 16:54:14.137  30178-30897/? D/dalvikvm﹕ GC_FOR_ALLOC freed 736K, 29% free 2727K/3840K, paused 0ms, total 0ms
10-22 16:54:23.877   30217-2365/? D/BstCommandProcessor-httpd﹕ command: ping
10-22 16:54:23.877   30217-2365/? D/BstCommandProcessor-httpd﹕ response: {"result":"ok"}
10-22 16:54:23.887   30217-2366/? D/BstCommandProcessor-httpd﹕ command: clipboard (with args)
10-22 16:54:23.887   30217-2366/? D/BstCommandProcessor-httpd﹕ response: {"result":"ok"}
10-22 16:54:30.017  29999-30062/? D/ConnectivityService﹕ Sampling interval elapsed, updating statistics ..
10-22 16:54:30.017  29999-30062/? D/ConnectivityService﹕ Done.
10-22 16:54:30.017  29999-30062/? D/ConnectivityService﹕ Setting timer for 720seconds
10-22 16:54:30.197  29999-30062/? D/ConnectivityService﹕ handleInetConditionChange: net=1 != default=9 - ignore
10-22 16:55:09.247  30178-30897/? D/dalvikvm﹕ GC_FOR_ALLOC freed 736K, 29% free 2727K/3840K, paused 0ms, total 0ms
10-22 16:55:41.237  29999-29999/? I/EntropyMixer﹕ Writing entropy...
10-22 16:56:04.357  30178-30897/? D/dalvikvm﹕ GC_FOR_ALLOC freed 736K, 29% free 2727K/3840K, paused 0ms, total 0ms
10-22 16:56:59.467  30178-30897/? D/dalvikvm﹕ GC_FOR_ALLOC freed 736K, 29% free 2727K/3840K, paused 0ms, total 0ms

@Taurus22,您可能使用的是最新版本的编译器。这是刚接触Cordova/Phonegap的开发人员的常见问题。您有一个whitelist问题。

修复许多常见的白名单问题

另一种方法是此快速修复 - 但要知道此快速修复消除了white-list的所有需求。这会产生您可能不希望通过的安全问题。

快速修复 将其添加到您的 PHONEGAP BUILD ONLY
config.xml <preference name="phonegap-version" value="3.7.0" />

长答案是这样的:

从刚接触Cordova/Phonegap的开发人员犯的热门错误中,您遇到了:

  • #6 不为编译器设置"phonegap版本">
  • #7不为您的插件设置"版本">
  • #10 不在 config.xml 中添加新的"白名单"和"白名单插件"参数。

对于#6和#7

对于 CLI 版本,如果您没有为您的平台分配版本,或者在"Phonegap 构建"中,如果您没有在 config.xml 中设置电话间隙版本,您将获得最新版本。如果幸运的话,您的程序可以按预期工作。如果你不走运,你会得到一组级联错误。

幸运的是,Holly Schinsky写了一篇很好的博客文章来解释这一切:

科尔多瓦/PhoneGap 版本混淆
http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/

对于#10

这个相对*新的*要求意味着 - 要访问网络上的任何网站或资源,您必须使用白名单和白名单插件。如果您使用的是 cordova-android@4.0.0 或更高版本,此要求将生效;包括 cli-5.1.1 和 cli-5.2.0。但是,如果您的版本低于 4.0.0,例如 3.5.0 或 3.7.0,那么您将不必添加白名单要求。

需要明确的是,"白名单"已经存在了一段时间,但插件和要求非常新。如您所料,当添加"白名单"时,事实上的开放访问功能已被弃用。或者换句话说,事实上的开放访问功能是计划并计划被取消的。此更改标志着删除开放访问功能的步骤。

此外,内容安全策略(CSP(已经吸引了许多开发人员 - 因为它的宣传太少了。根据您的使用情况和您使用的Phonegap版本,CSP需要进入您使用的每个HTML页面,就像您必须等待"deviceready"一样。但是,在某些情况下根本不需要它。该文档对某些人来说令人困惑,请仔细阅读。该文档隐藏在许多最新文档页面的底部。

最后,雷蒙德·卡姆登(Raymond Camden(在他的博客中指出,从科尔多瓦5开始,政策发生了重大变化

相关链接

Phonegap构建论坛:在PGB上升级到cli-5.1.1的注意事项,现在需要白名单

  • 科尔多瓦白名单指南
  • 电话间隙白名单指南
  • 电话差距构建白名单指南