0

我正在用英特尔 xdk 为 android 和 ios 构建一个应用程序。我无法在 android 的 sdcard 上保存 pdf。我能够获取设备的文件目录,并且我的警报文本显示我进展顺利。但是当我尝试保存 pdf 时,什么也没有发生。该应用程序只是跳过“fileTransfer.download(...)”,没有例外,没有什么。

我可能遗漏了一些东西,但是不支持文件传输吗?一直在寻找,但没有运气。欢迎所有想法:o)

/安德斯我的代码:

function download()
{
 window.appRootDirName = "download_test";
            document.addEventListener("deviceready", onDeviceReady, false);

            function onDeviceReady() {
                alert("device is ready");
                window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
            }

            function fail() {
                alert("failed to get filesystem");
            }

            function gotFS(fileSystem) {
                alert("filesystem got");
                window.fileSystem = fileSystem;
                fileSystem.root.getDirectory(window.appRootDirName, {
                    create: true,
                    exclusive: false
                }, dirReady, fail);
            }

            function dirReady(entry) {
                window.appRootDir = entry;
                alert("application dir is ready");
            }

             var filePathx = window.appRootDir.fullPath + "/test.pdf";
            alert(filePathx);
            try{
            downloadFile = function() {
                    var fileTransfer = new FileTransfer();

                    var url = "http://myserver/file.pdf";
                    var filePath = window.appRootDir.fullPath + "/test.pdf";


                        fileTransfer.download(
                        url, filePath, function(entry) {
                            alert("download complete: " + entry.fullPath);
                        }, function(error) {
                            alert("download error" + error.source);
                        });


            }
            }
            catch(e)
                    {
                        alert("error in filetransfer.download: " + e.message);
                    }
}
4

1 回答 1

1

您需要在清单文件中包含 WRITE_EXTERNAL_STORAGE 权限,但英特尔 XDK 不提供启用此权限的 UI。我会为你提交一个错误。 http://developer.android.com/reference/android/Manifest.permission.html#WRITE_EXTERNAL_STORAGE

您应该能够使用 Cordova for Android 构建。我刚刚测试了一个 PhoneGap Audio 示例应用程序,但它不起作用。我已经为 Intel XDK 提交了一个错误。

您可以通过执行以下操作来尝试使用 Cordova Android 构建:

使用英特尔 XDK 版本 0876:

  • 单击开始新项目
  • 单击使用演示
  • 点击PhoneGap音频
  • 单击使用此演示
  • 为您的项目命名
  • 点击创建
  • 单击“开发”选项卡
  • 单击“intelxdk.config.xml”
  • 将此文件复制到您自己的项目中
  • 第 4 行:更改为您的项目名称
  • 第 4 行:更改为您的用户名,不带任何符号或空格
    • 您可以通过转到 BUILD 选项卡来检查这一点
    • 点击 Cordova for Android BUILD 按钮
    • 点击上传代码
    • 查看您的团队名称:显示在绿色“立即构建应用程序”按钮上方的右侧“Cordova Development Build”框中
    • 单击关闭构建页面
    • 单击开发并更新您的以匹配构建屏幕,即。第 4 行:id="usernamewithoutsymbols.audioproject"
    • 注意:我还将提交一个错误,以获得更好的用户界面来查找团队名称
  • 单击构建选项卡
  • 点击 Cordova for Android BUILD 按钮
  • 点击上传代码
  • 单击立即构建应用程序
  • 点击下载构建

使用 adb install .apk 安装 .apk

  • 启动应用程序
  • 点击红色记录图标
  • 点击停止
  • 点击播放

此应用程序应使用 Cordova API 创建和保存音频文件。我刚刚在 4.0 和 Android 2.3 手机上尝试过,但没有成功。为您提交的错误,我将在跟踪问题时更新此帖子。

可在https://software.intel.com/en-us/html5/articles/using-the-cordova-for-android-ios-etc-build-option找到文档

于 2014-05-08T20:48:38.970 回答