Documenta as APIs JavaScript (JSAPIs) da classe WVCamera, que permite adicionar recursos de câmera — incluindo captura de fotos, seleção de imagens do álbum e seleção múltipla de fotos — a aplicativos H5 e mini programs.
WVCamera.takePhoto
WVCamera.takePhoto solicita ao usuário que tire uma foto com a câmera ou selecione uma imagem do álbum. Utilize o caminho da foto retornado para implementar um recurso de upload no seu mini program.
No iOS 11 e versões posteriores, adicione a permissão NSPhotoLibraryAddUsageDescription ao seu cliente antes de acessar o álbum.
O exemplo a seguir mostra uma chamada básica usando o modo padrão:
var photoLocalPath; // Stores the local file path.
var params = {
mode: 'both',
};
window.WindVane.call('WVCamera', 'takePhoto', params, function(e) {
var uploadParams = {
// The path of the photo to be uploaded
path: e.localPath
};
// Implement your own logic to send the formData to a backend service for file storage.
...
...
}, function(e) {
alert('takePhoto failure: ' + JSON.stringify(e));
});
Parâmetros de entrada
[
string] mode: Opcional. Especifica a source da foto.'camera'abre apenas a câmera do dispositivo.'photo'abre apenas o álbum. O valor padrão,'both', permite que o usuário escolha entre a câmera e o álbum.[
boolean] compatible: Opcional. Defina comotrueao chamar este método após apresentar um mini program.
Parâmetros de callback
O callback success é executado quando uma foto é obtida. O callback failure é executado quando a operação falha ou o usuário cancela.
Parâmetros do callback de sucesso:
-
[
string] url: Uma URL de visualização prévia da foto. Atribua-a ao atributosrcde um elementoimgpara exibir a imagem.ImportanteEsta não é uma URL real de Content Delivery Network (CDN) e não pode ser acessada diretamente pelo navegador.
[
string] localPath: O caminho do arquivo local da foto. Use este caminho para upload — por exemplo, comWVCamera.confirmUploadPhoto.[
string] identifier: O identificador da foto. Retornado ao fazer upload via Mtop (v = '2.0'), refletindo oidentifierdos parâmetros de entrada.[
string] base64Data: Os dados da imagem codificados em Base64. Retornado apenas quandoneedBase64 = trueestiver definido. Adicione o prefixodata:image/png;base64,antes de usar o valor. RequerVER.WindVane 8.0.0 or later.
Parâmetros do callback de falha:
[
string] errorType: O tipo de erro.[
string] errorCode: O código de erro.[
string] errorMsg: A mensagem de erro.[
string] identifier: O identificador da foto. Retornado ao fazer upload via Mtop (v = '2.0'), refletindo oidentifierdos parâmetros de entrada.
Se o usuário cancelar, o callback de falha será executado com {ret:'HY_RET_PHOTO_CANCLE'} no iOS e {ret:'HY_FAILED'} no Android — nenhum outro parâmetro será retornado. Se o aplicativo não tiver permissão para acessar a câmera ou o álbum, o callback de falha também será executado e os parâmetros retornados incluirão {msg:'NO_PERMISSION'}.
Listeners de eventos
WVPhoto.Event.takePhotoSuccess
Disparado após a obtenção da foto e antes do upload. Neste momento, o JavaScript pode exibir uma pré-visualização da foto na página.
Parâmetros do evento:
-
[
string] url: Uma URL de visualização prévia da foto. Atribua-a ao atributosrcde um elementoimgpara exibir a imagem.ImportanteEsta não é uma URL real de CDN e não pode ser acessada diretamente pelo navegador.
[
string] localPath: O caminho do arquivo local. Use este caminho para realizar o upload.
Modo de seleção múltipla
Exclusivo para WindVane no iOS.
O modo de seleção múltipla permite que os usuários escolham e enviem várias fotos de uma vez a partir do álbum. Este recurso está disponível apenas para WindVane no iOS. Caso o usuário mude para a source da câmera, a API reverte para o modo de foto única. Passe mode: 'photo' para ir diretamente ao álbum e manter o comportamento de seleção múltipla.
Parâmetros de entrada
[
string] mutipleSelection: Opcional. Habilita o modo de seleção múltipla.'1'ativa o recurso;'0'o desativa. Padrão:'0'.[
int] maxSelect: Opcional. Número máximo de fotos que o usuário pode selecionar. Padrão:9.
Parâmetros de callback
O callback success é executado quando as fotos são obtidas. O callback failure é executado quando a operação falha ou o usuário cancela.
Parâmetros do callback de sucesso:
-
[
array] images: Um array contendo as fotos selecionadas. Cada item contém:-
[
string] url: Uma URL de visualização prévia da foto. Atribua-a ao atributosrcde um elementoimgpara exibir a imagem.ImportanteEsta não é uma URL real de CDN e não pode ser acessada diretamente pelo navegador.
[
string] localPath: O caminho do arquivo local da foto. Utilize este caminho para um upload subsequente, como comWVCamera.confirmUploadPhoto.
-
Parâmetros do callback de falha:
[
string] errorType: O tipo de erro.[
string] errorCode: O código de erro.[
string] errorMsg: A mensagem de erro.[
string] identifier: O identificador da foto. Retornado ao fazer upload via Mtop (v = '2.0'), refletindo oidentifierdos parâmetros de entrada.
Se o usuário cancelar, o callback de falha será executado com {ret:'HY_RET_PHOTO_CANCLE'} no iOS e {ret:'HY_FAILED'} no Android — nenhum outro parâmetro será retornado. Se o aplicativo não tiver permissão para acessar a câmera ou o álbum, o callback de falha também será executado e os parâmetros retornados incluirão {msg:'NO_PERMISSION'}.
Listeners de eventos
WVPhoto.Event.takePhotoSuccess: Disparado após a obtenção das fotos e antes do upload. Neste momento, o JavaScript pode exibir uma pré-visualização de cada foto na página.
Parâmetros do evento:
-
[
string] url: Uma URL de visualização prévia da foto. Atribua-a ao atributosrcde um elementoimgpara exibir a imagem.ImportanteEsta não é uma URL real de CDN e não pode ser acessada diretamente pelo navegador.
[
string] localPath: O caminho do arquivo local. Use este caminho para o upload (WindVane on Android only).
Os dois eventos a seguir são disparados apenas durante uploads imediatos, acionados logo após a seleção da foto:
WVPhoto.Event.uploadPhotoSuccess: Disparado sempre que uma foto é enviada com sucesso.
Parâmetros do evento:
-
[
string] url: Uma URL de visualização prévia da foto. Atribua-a ao atributosrcde um elementoimgpara exibir a imagem.ImportanteEsta não é uma URL real de CDN e não pode ser acessada diretamente pelo navegador.
[
string] localPath: O caminho do arquivo local da foto. Use este caminho para obter os dados do arquivo para uploads posteriores.[
string] identifier: O identificador da foto. Retornado ao fazer upload via Mtop (v = '2.0'), refletindo oidentifierdos parâmetros de entrada.
WVPhoto.Event.uploadPhotoFailed: Disparado sempre que o upload de uma foto falha.
Parâmetros do evento:
[
string] errorType: O tipo de erro.[
string] errorCode: O código de erro.[
string] errorMsg: A mensagem de erro.[
string] identifier: O identificador da foto. Retornado ao fazer upload via Mtop (v = '2.0'), refletindo oidentifierdos parâmetros de entrada.
document.addEventListener('WVPhoto.Event.uploadPhotoSuccess', function (e) {
alert('event uploadPhotoSuccess: ' + JSON.stringify(e.param));
});
document.addEventListener('WVPhoto.Event.uploadPhotoFailed', function (e) {
alert('event uploadPhotoFailed: ' + JSON.stringify(e.param));
});
var params = {
// Specifies whether to automatically upload photos after selection.
type: '1',
// Specifies if the source is limited to the camera or the album.
mode: 'photo',
// The upload method.
v: '2.0',
// Specifies whether to use multiple selection mode.
mutipleSelection: '1',
// Maximum number of photos for multiple selection mode.
maxSelect: 6
};
window.WindVane.call('WVCamera', 'takePhoto', params, function(e) {
alert('takePhoto success: ' + JSON.stringify(e));
}, function(e) {
alert('takePhoto failure: ' + JSON.stringify(e));
});