2

我想弄清楚如何用下载的文件替换或添加 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

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

4

1 回答 1

4

你不能替换源代码中的代码......
因为android资产文件夹是只读的,你写的html放在那里......如果你可以编程java我建议将html文件从资产处理到sdcard然后运行代码从那里
你可以修改它

但我在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");
}

并且不要忘记存储权限:

权限


安卓

应用程序/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" />

八达

不需要任何权限。


黑莓网络工程

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:
配置.xml:

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

webOS:
不需要权限。


Windows Phone:
不需要权限。

于 2013-07-26T16:06:40.580 回答