Могу ли я установить фотографию пользователя на Titanium ACS?
Мне нужно добавить фотографию для моего пользователя, сделав это из веб-интерфейса, я получил фотографию в поле с именем photo
, но если я попытаюсь сделать то же самое программно из мобильного приложения, это не сработает.
photonativePath
это моя фотография из камеры или галереи.
Cloud.Users.update({
email: 'joeuser@mycompany.com',
first_name: 'joe',
last_name: 'user',
photo : Titanium.Filesystem.getFile(photonativePath),
custom_fields: {
favorite_color: 'blue',
age: 25
}
}, function (e) {
if (e.success) {
var user = e.users[0];
alert('Success:\n' +
'id: ' + user.id + '\n' +
'first name: ' + user.first_name + '\n' +
'last name: ' + user.last_name);
} else {
alert('Error:\n' +
((e.error && e.message) || JSON.stringify(e)));
}
});
1 ответ
Решение
Попробуйте следующее. Вы можете открыть фотогалерею с помощью метода openPhotoGallery. Это откроет изображение из галереи и выберите изображение. Обновит картинку при успешном обратном вызове
function openPhotoGallery(){
Ti.Media.openPhotoGallery({
success: function (event){
var image=event.media;
var imgvwTest = Ti.UI.createImageView({
image : image
});
updatePhoto(imgvwTest.toImage());
},
cancel:function(){
Titanium.UI.createAlertDialog({
title:'Error',
message:'An error occured while trying to reference your gallery!'
}).show();
},
error:function(er){
Titanium.UI.createAlertDialog({
title:'Error',
message:'An error occured while trying to reference your gallery!'
}).show();
}
});
}
function updatePhoto(selectedImage){
Cloud.Users.update({
email: 'joeuser@mycompany.com',
first_name: 'joe',
last_name: 'user',
photo : selectedImage.media,
custom_fields: {
favorite_color: 'blue',
age: 25
}
}, function (e) {
if (e.success) {
var user = e.users[0];
alert('Success:\n' +
'id: ' + user.id + '\n' +
'first name: ' + user.first_name + '\n' +
'last name: ' + user.last_name);
} else {
alert('Error:\n' +
((e.error && e.message) || JSON.stringify(e)));
}
});
}
Пожалуйста, дайте мне знать, если у вас есть какие-либо проблемы