我想知道如何用下载的文件替换或添加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
我可以以某种方式链接到那个吗?
答案 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:
无需任何权限。