我正在使用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);
}
}
答案 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:
使用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
找到文档