Phonegap 下载 html 文件并替换它(源)</title&g...</desc> <question vote="2"> <p>我想弄清楚如何用下载的文件替换或添加 Phonegap 的一些源文件。</p> <pre><code><!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> </code></pre> <p>我可以下载和访问该文件,但我可以在某个地方将下载路径设置为 Phonegap 中的“www”文件夹吗? 或者我如何找出文件的路径(这样我就可以链接到那个路径)</p> <p>Xcode 控制台告诉我 <pre><code>file://localhost/var/mobile/Applications/1AE34410-C57E-4896-8616-042E386552E0/Documents/index_2.html</code></pre></p> <p>我能以某种方式链接到那个吗?</p> </question> <answer tick="false" vote="4"> <p>你不能替换源代码...<br/> 因为android资产文件夹是只读的 以及您在那里写的 html ... 如果你可以编程 java 我建议将 html 文件从资产复制到 sdcard 然后从那里运行代码<br/> 你可以修改它</p> <p><strong>或者您可以将下载的 HTML 存储在 HTML5 本地存储中:</strong></p> <p>我在 phonegap-build(在 Dreamweaver 中)做了这个,它对我有用:</p> <pre><code>// retrive html data as String in Var : MY_Data window.localStorage.setItem("mydiv_update", My_Data); document.getElementById("your_div").innerHtml = My_Data; </code></pre> <p>然后每次加载页面时检查<pre><code>window.localStorage.getItem("mydiv_update")</code></pre>是否存在。如果是,则更改 div 的 innetHTML 。像这样:</p> <pre><code>if(window.localStorage.getItem("mydiv_update")){ document.getElementById("your_div").innerHtml = window.localStorage.getItem("mydiv_update"); } </code></pre> <p>并且不要忘记存储权限:</p> <p><em><strong>权限</strong></em></p> <hr/> <p><strong>安卓</strong></p> <p>应用程序/res/xml/config.xml:</p> <pre><code><plugin name="File" value="org.apache.cordova.FileUtils" /> <plugin name="FileTransfer" value="org.apache.cordova.FileTransfer" /> </code></pre> <p>应用程序/AndroidManifest.xml:</p> <pre><code><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> </code></pre> <hr/> <p><strong>巴达</strong></p> <p>不需要权限。</p> <hr/> <p><strong>BlackBerry WebWorks</strong></p> <p>www/plugins.xml :</p> <pre><code><plugin name="File" value="org.apache.cordova.file.FileManager" /> <plugin name="FileTransfer" value="org.apache.cordova.http.FileTransfer" /> </code></pre> <p>www/config.xml:</p> <pre><code><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> </code></pre> <hr/> <p><strong>iOS:</strong><br/> 配置文件:</p> <pre><code><plugin name="File" value="CDVFile" /> <plugin name="FileTransfer" value="CDVFileTransfer" /> </code></pre> <hr/> <p><strong>网络操作系统:</strong><br/> 不需要任何权限。</p> <hr/> <p><strong>Windows 手机:</strong><br/> 不需要任何权限。</p> </answer> </body></html>

问题描述 投票:0回答:0
javascript html cordova download
© www.soinside.com 2019 - 2024. All rights reserved.