Todos os produtos
Search
Central de documentação

SuperApp:Camera

Última atualização: Jun 29, 2026

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.

Importante

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 como true ao 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 atributo src de um elemento img para exibir a imagem.

    Importante

    Esta 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, com WVCamera.confirmUploadPhoto.

  • [string] identifier: O identificador da foto. Retornado ao fazer upload via Mtop (v = '2.0'), refletindo o identifier dos parâmetros de entrada.

  • [string] base64Data: Os dados da imagem codificados em Base64. Retornado apenas quando needBase64 = true estiver definido. Adicione o prefixo data:image/png;base64, antes de usar o valor. Requer VER.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 o identifier dos parâmetros de entrada.

Nota

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 atributo src de um elemento img para exibir a imagem.

    Importante

    Esta 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

Nota

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 atributo src de um elemento img para exibir a imagem.

      Importante

      Esta 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 com WVCamera.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 o identifier dos parâmetros de entrada.

Importante

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 atributo src de um elemento img para exibir a imagem.

    Importante

    Esta 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 atributo src de um elemento img para exibir a imagem.

    Importante

    Esta 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 o identifier dos 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 o identifier dos 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));
});