Phonegap下载html文件并替换它(来源)

时间:2013-01-18 13:25:56

标签: javascript html cordova download

我想知道如何用下载的文件替换或添加Phonegap的一些源文件。

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script>
        <script type="text/javascript">
               function onBodyLoad()
            {
                document.addEventListener("deviceready", onDeviceReady, false);
            }

            function downloadFile(){
                window.requestFileSystem(
                                         LocalFileSystem.PERSISTENT, 0,
                                         function onFileSystemSuccess(fileSystem) {
                                         fileSystem.root.getFile(
                                                                 "dummy.html", {create: true, exclusive: false},
                                                                 function gotFileEntry(fileEntry){
                                                                 var sPath = fileEntry.fullPath.replace("dummy.html","");
                                                                 var fileTransfer = new FileTransfer();
                                                                 fileEntry.remove();

                                                                 fileTransfer.download(
                                                                                       "https://dl.dropbox.com/u/xxxxx/index_2.html",
                                                                                       sPath + "index_aerosoft.html",
                                                                                       function(theFile) {
                                                                                       console.log("download complete: " + theFile.toURI());
                                                                                       showLink(theFile.toURI());
                                                                                       },
                                                                                       function(error) {
                                                                                       console.log("download error source " + error.source);
                                                                                       console.log("download error target " + error.target);
                                                                                       console.log("upload error code: " + error.code);
                                                                                       }
                                                                                       );
                                                                 },
                                                                 fail);
                                         }, 
                                         fail);

            }

            function showLink(url){
                alert(url);
                var divEl = document.getElementById("ready");
                var aElem = document.createElement("a");
                aElem.setAttribute("target", "_blank");
                aElem.setAttribute("href", url);
                aElem.appendChild(document.createTextNode("Ready! Click To Open."))
                divEl.appendChild(aElem);

            }


            function fail(evt) {
                console.log(evt.target.error.code);
            }

            function onDeviceReady()
            {
                downloadFile();
            }

            </script>
    </head>
    <body onload="onBodyLoad()">
            <br />
            <p>
            DOWNLOADING FILE...<br />
            <span id="ready"></span>
            </p>
            </body>
</html>

我可以下载并访问该文件,但我可以在某处设置下载到Phonegap中的'www'文件夹的路径吗? 或者我如何弄清楚文件的路径(所以我可以链接到该路径)

Xcode控制台告诉我 file://localhost/var/mobile/Applications/1AE34410-C57E-4896-8616-042E386552E0/Documents/index_2.html

我可以以某种方式链接到那个吗?

1 个答案:

答案 0 :(得分:4)

你无法替换源代码......
因为android资产文件夹是只读的 你写的html就在那里...... 如果你可以编程java我建议将资产中的html文件复制到SD卡,然后从那里运行代码 你可以修改它

但是我在phonegap-build(在Dreamweaver中)这样做了,它对我有用:

// retrive html data as String in Var : MY_Data
window.localStorage.setItem("mydiv_update", My_Data);
document.getElementById("your_div").innerHtml = My_Data;

然后每次加载页面时检查window.localStorage.getItem("mydiv_update")是否存在。如果是,则更改div的innetHTML。像这样:

if(window.localStorage.getItem("mydiv_update")){
  document.getElementById("your_div").innerHtml = window.localStorage.getItem("mydiv_update");
}

并且不要忘记存储权限:

权限


<强>的Android

app / res / xml / config.xml:

<plugin name="File" value="org.apache.cordova.FileUtils" />
<plugin name="FileTransfer" value="org.apache.cordova.FileTransfer" />

app / AndroidManifest.xml:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<强>八达

无需任何权限。


BlackBerry WebWorks

www / plugins.xml:

<plugin name="File" value="org.apache.cordova.file.FileManager" />
<plugin name="FileTransfer" value="org.apache.cordova.http.FileTransfer" />

www / config.xml:

<feature id="blackberry.io.file" required="true" version="1.0.0.0" />
<feature id="blackberry.utils"   required="true" version="1.0.0.0" />
<feature id="blackberry.io.dir"  required="true" version="1.0.0.0" />
<rim:permissions>
    <rim:permit>access_shared</rim:permit>
</rim:permissions>  

iOS:
config.xml:

<plugin name="File" value="CDVFile" />
<plugin name="FileTransfer" value="CDVFileTransfer" />  

webOS:
无需权限。


Windows Phone:
无需任何权限。