英特尔XDK将pdf保存到sdcard filetransfer.download - android

时间:2014-05-05 09:41:14

标签: javascript android pdf intel-xdk appframework

我正在使用intel 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);
                    }
}

1 个答案:

答案 0 :(得分:1)

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

您应该可以使用Cordova for Android版本。我刚刚测试了一个PhoneGap Audio示例应用程序,但它不起作用。我已经为英特尔XDK提交了一个错误。

您可以通过执行以下操作来尝试Cordova Android版本:

使用英特尔XDK版本0876:

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

使用adb install .apk安装.apk

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

此应用应使用Cordova API创建和保存音频文件。我刚刚在4.0和Android 2.3手机上试过这个,但它没有用。 Bug已提交给您,我将在跟踪问题时更新此帖子。

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

找到文档