【问题标题】:Intel XDK save pdf to sdcard filetransfer.download - android英特尔 XDK 将 pdf 保存到 sdcard filetransfer.download - android
【发布时间】:2014-06-21 13:40:42
【问题描述】:

我正在用英特尔 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);
                    }
}

【问题讨论】:

  • 我也有类似的问题。你能检查一下你得到的error.code是什么吗?你能告诉我们你的 intelxdk.config.xml 吗?您介意在 intelXDK 中分享您的 phonegap 项目结构吗?
  • 这个问题你解决了吗?我也面临同样的问题。我也尝试了您的代码,但仍然无法正常工作。请查看我的问题这里是链接stackoverflow.com/questions/25154026/…

标签: javascript android pdf intel-xdk appframework


【解决方案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 行:更改为您的用户名,不带任何符号或空格
    • 您可以通过转到“构建”选项卡来检查此内容
    • 点击 Cordova for Android BUILD 按钮
    • 点击上传代码
    • 查看您的团队名称:显示在右侧绿色“立即构建应用程序”按钮上方的“Cordova Development Build”框中
    • 点击关闭构建页面
    • 单击开发并更新您的以匹配构建屏幕 IE。第 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找到

【讨论】:

  • 谢谢,我会在周末使用 4.2 在我的 nexus 上查看这个并尝试您的示例。
  • @mnementh 我也面临同样的问题。我试过你的;;新版本的英特尔 xdk 1199 也可以选择,但仍然无法使用。请在这里查看我的问题是链接 stackoverflow.com/questions/25154026/...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多