2013-01-18 51 views
2

我想弄清楚如何用下載的文件替換或添加一些Phonegap的源文件。Phonegap下載html文件並將其替換(來源)

<!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> 

我可以下載和訪問該文件,但我可以在某處設置下載到'www'文件夾在Phonegap中的路徑嗎? 或如何找出該文件的路徑(這樣我就可以鏈接到該路徑)

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

我可以以某種方式鏈接到?

+3

您無法覆蓋應用程序中捆綁的文件。您只能寫入永久存儲上的位置。 – codemonkey

回答

4

您不能替換源代碼...
因爲Android的資源文件夾是隻讀的 和HTML你已經有書面的地方...... 如果你可以編寫Java的我建議應對HTML文件從資產到SD卡,然後從那裏
運行的代碼,你可以修改它,然後

,但我這樣做在PhoneGap的建造(在Dreamweaver)和它的工作對我來說:

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

則每次日e頁正在加載檢查是否存在window.localStorage.getItem("mydiv_update")。如果是,則更改div的innetHTML。像這樣:

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

,不要忘記存儲權限:

權限


的Android

應用程序/ RES/XML/config.xml中:

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

應用程序/ AndroidManifest.xml中:

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

巴達

不需要任何權限。


黑莓WebWorks的

萬維網/ plugins.xml:

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

萬維網/ 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:
不需要任何權限。