저는 Cordova 3.3 용 플러그인을 개발 중입니다.TypedArray를 Cordova 플러그인 매개 변수로 사용
내 자바 스크립트 부분에서 나는 uInt8Array로 저장된 PDF 파일을 다운로드 중입니다.
download: function () {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'url/to/pdf', true);
xhr.responseType = 'arraybuffer';
xhr.setRequestHeader('Accept', 'application/pdf');
xhr.onload = function(e) {
var uInt8Array = new Uint8Array(this.response);
window.plugins.filedownloader.saveFile(
uInt8Array,
"Downloads",
function (response) {
console.log("success");
},
function (response) {
console.log("failure");
}
);
};
xhr.send();
},
필자는 내 cordova 플러그인의 저장 방법에 uInt8Array를 적용합니다. 내 플러그인의 자바 스크립트 부분은 다음과 같습니다
public PluginResult execute(JSONArray args) {
PluginResult result = new PluginResult(PluginResult.Status.OK, "blub");
log("saveFile");
try{
JSONObject dataValues = args.getJSONObject(0);
} catch (JSONException e) {
e.printStackTrace();
}
return result;
}
내 문제가하는 TypedArray 더 배열이 더 이상 없다는 것을, 지금 :
var exec = require('cordova/exec');
function FileDownloader() {
};
FileDownloader.prototype = {
login: function (loginUrl, params, username, password, successCallback, failureCallback) {
exec(successCallback, failureCallback, "FileDownloader", "doLogin", [ loginUrl, params, username, password ]);
},
getHtmlPage: function (url, successCallback, failureCallback) {
exec(successCallback, failureCallback, "FileDownloader", "getHtmlPage", [ url ]);
},
downloadAndSaveFile: function (url, saveFolder, successCallback, failureCallback) {
exec(successCallback, failureCallback, "FileDownloader", "downloadAndSaveFile", [ url, saveFolder ]);
},
saveFile: function (data, saveFolder, successCallback, failureCallback) {
exec(successCallback, failureCallback, "FileDownloader", "saveFile", [ data, saveFolder ]);
}
};
FileDownloader.install = function() {
if (!window.plugins) {
window.plugins = {}
}
window.plugins.filedownloader = new FileDownloader();
return window.plugins.filedownloader;
};
cordova.addConstructor(FileDownloader.install);
자바 부분의 저장 방법은 다음과 같다. 그것은 JSONObject입니다. uInt8Array의 지시자는 이제 문자열이며 더 이상 주문되지 않습니다. 또한 적어도 "byteBuffer"라는 새 키가 있습니다.
플러그인의 자바 부분으로 전달 될 때 typedArray를 JSONArray로 처리 할 수 있습니까? 아니면이 문제를 다루는 다른 접근 방식이 있습니까?