Я работаю с основанным на js (для MVC) приложением Cordova для iOS.При этом у нас есть представления для отображения файлов шаблонов, при этом FileUploadOptions и FileTranfer не работают.На этом мы определили файлы, как показано ниже:
define(['backbonelocalstorage', 'templates/createequipment.tpl', 'templates/createequipmentinfo.tpl',
'templates/createequipmentid.tpl', 'templates/createadditionalid.tpl', 'templates/createequipmentdetail.tpl',
'templates/createpurchaseinfo.tpl', 'templates/createtechnicaldata.tpl', 'templates/createadditionalinfo.tpl',
'templates/selectVendorList.tpl', 'templates/selectVendorListScroll.tpl', 'templates/selectSystemId.tpl',
'templates/selectSystemIdScrollList.tpl', 'templates/selectServiceProviderList.tpl', 'templates/selectServiceProviderScrollList.tpl',
'templates/selectLocationList.tpl','templates/selectLocationScrollList.tpl', 'templates/selectManufacturerList.tpl',
'templates/selectManufacturerListScroll.tpl', 'templates/selectCategoriesList.tpl', 'templates/selectCategoriesScrollList.tpl',
'templates/selectAlternativeDeviceList.tpl', 'templates/selectAlternativeDeviceScrollList.tpl', 'templates/selectContractList.tpl',
'templates/selectContractsScrollList.tpl', 'templates/systemEquipmentList.tpl', 'templates/systemEquipmentListScroll.tpl',
'views/header/newheaderview', 'views/aside/asideview', 'models/templatemodel', 'models/equipmentTemplatemodel',
'models/equipmentIDmodel', 'models/additionalIDmodel', 'models/equipmentDetailsmodel', 'models/purchaseInfomodel',
'models/technicalDatamodel', 'models/additionalInfomodel', 'models/getvendorlistmodel', 'models/getSystemIdListmodel',
'models/getserviceproviderlistmodel', 'models/getequipmentmanufacturerlistmodel', 'models/getequipmentlocationlistmodel',
'models/getequipmentcategorieslistmodel', 'models/getequipmentaltdevicelistmodel', 'models/getequipmentcontractlistmodel',
'models/createsaveequipmentmodel', 'models/productNumberValidationModel', 'models/uniqueManufacturerModel','models/uniqueSystemIdModel',
'models/equipmentInventoryLocationModel', 'models/validateSignOffUser', 'models/currentOrganizationRelevantDetails',
'models/tNrEquipmentTabModel','models/equipmentAlreadyMappedModel', 'js/childbrowser.js', 'js/vwrdatepicker.js',
'handlebars','views/createTasknRequest/ComplianceView','base64', 'bootstrap', 'jqueryUI'],
function(Storage, CreateEquipmentTemplate, CreateEquipmentInfoTemplate, CreateEquipmentIdTemplate, CreateAddtionalIdTemplate,
CreateEquipmentDetailTemplate, CreatePurchaseInfoTemplate, CreateTechnicalDataTemplate, CreateAdditionalInfoTemplate,
SelectVendorListTemplate, SelectVendorListScrollTemplate, SelectSystemIdListTemplate, SelectSystemIdScrollListTemplate,
SelectServiceProviderListTemplate, SelectServiceProviderScrollListTemplate, SelectLocationListTemplate,
SelectLocationScrollListTemplate, SelectManufacturerListTemplate, SelectManufacturerListScrollTemplate,
SelectCategoriesListTemplate, SelectCategoriesScrollListTemplate, SelectAlternativeDeviceListTemplate,
SelectAlternativeDeviceScrollListTemplate, SelectContractList, SelectContractListTemplate, SystemEquipmentList,
systemEquipmentListScroll, HeaderView, AsideView, TemplateModel, EquipmentTemplateModel, EquipmentIdModel,
AdditionalIdModel, EquipmentDetailsModel, PurchaseInfoModel, TechnicalDataModel, AdditionalInfoModel, GetVendorListModel,
GetSystemIdListModel, GetServiceProviderListModel, GetEquipmentManufacturerListModel, GetEquipmentLocationListModel,
GetEquipmentCategoriesListModel, GetEquipmentAltDeviceListModel, GetEquipmentContractListModel, CreateSaveEquipmentModel,
ProductNumberValidationModel, UniqueManufacturerModel,UniqueSystemIdModel, EquipmentInventoryLocationModel, ValidateSignOffUser,
CurrentOrganizationRelevantDetails, EquipmentListModel, equipmentAlreadyMappedModel,childBrowser, vwrDatePicker, Handlebars,ComplianceView, Base64, BootStrap) {
На этой странице Камера, которую я использовал, как показано ниже
var Camera=window.cordova.require("cordova-plugin-camera.camera");
Я могу взять или выбрать, используя getpicture, после этого я попытался загрузить, используяFileUploadOptions и плагин FileTransfer для загрузки изображения.
После выбора камеры или файла он перенаправляется к методу успеха следующим образом:
uploadPhotoEquipment: function(message) {
$(".modal.in").modal('hide');
captured = message;
imagename = "tempfile"; //message.name;
//fullPath = message.fullPath;
var options = new FileUploadOptions();
options.fileKey = "uploadImage";
options.fileName = imagename;
options.mimeType = "image/jpg";
options.headers = App.getAuthHeaders();
options.chunkedMode = false;
var ft = new FileTransfer();
var url = window.serviceHost + "/uploadEquipmentImageService";
ft.onprogress = function(progressEvent) {
$("#processingBody").modal("show");
$("#processing").show();
}
ft.onloadend = function(progressEvent) {
$("#processingBody").modal("hide");
$("#processing").hide();
}
ft.onerror = function(progressEvent) {
$("#processingBody").modal("hide");
$("#processing").hide();
}
ft.upload(message, url, uploadSucessEquipment, this.uploadFailEquipment, options, true);
}
Я получил ошибку, например FileUploadOptions undefined, поэтому замените ее на {} тогда я получил FileTransfer не определено.