JSAPI

  • Since 8.1

    photo

    拍照/选择照片

    不推荐使用,建议使用新的chooseImage接口

    使用方法

    AlipayJSBridge.call('photo', {
      dataType: 'dataURL',
      imageFormat: 'jpg',
      quality: 75,
      maxWidth: 500,
      maxHeight: 500,
      allowEdit: true,
      multimediaConfig: { // 可选,仅当该项被配置时,图片被传输至 APMultimedia
        compress: 2, // 可选,默认为4。 0-低质量,1-中质量,2-高质量,3-不压缩,4-根据网络情况自动选择
        business: "multiMedia" // 可选,默认为“NebulaBiz”
      }
    }, function(result) {
      alert(JSON.stringify(result));
    });
    

    代码演示

    基本功能

    <h1>点击查看选择一幅图片</h1>
    
    <a href="#" class="btn read">调用图片选择</a>
    <img id="myImage" />
    <script>
    function ready(callback) {
      // 如果jsbridge已经注入则直接调用
      if (window.AlipayJSBridge) {
        callback && callback();
      } else {
        // 如果没有注入则监听注入的事件
        document.addEventListener('AlipayJSBridgeReady', callback, false);
      }
    }
    
    ready(function() {
      document.querySelector('.read').addEventListener('click', function() {
        AlipayJSBridge.call('photo', {
          dataType: 'dataURL',
          imageFormat: 'jpg',
          quality: 75,
          maxWidth: 500,
          maxHeight: 500,
          allowEdit: true,
          multimediaConfig: { // 可选,仅当该项被配置时,图片被传输至 APMultimedia
            compress: 2, // 可选,默认为4。 0-低质量,1-中质量,2-高质量,3-不压缩,4-根据网络情况自动选择
            business: "multiMedia" // 可选,默认为“NebulaBiz”
          }
        }, function(result) {
          var image = document.getElementById('myImage');
          image.src = "data:image/jpeg;base64," + result.dataURL;
        });
      });
    });
    </script>
    

    API

    AlipayJSBridge.call('photo', {
      dataType,
      imageFormat,
      quality,
      maxWidth,
      maxHeight,
      allowEdit,
      multimediaConfig: { // 可选,仅当该项被配置时,图片被传输至 APMultimedia
        compress, // 可选,默认为4。 0-低质量,1-中质量,2-高质量,3-不压缩,4-根据网络情况自动选择
        business // 可选,默认为“NebulaBiz”
      }
    }, fn);
    

    入参

    名称类型描述必选默认值版本
    dataTypestring结果数据格式:
    dataURL: base64编码的图片数据
    fileURL: 图片在文件系统中的url
    图片存放于临时目录中,钱包退出时被清除
    Y‘dataURL’
    imageFormatstringjpg / pngN‘jpg’
    qualityintjpg的图片质量, 取值1到100N75
    beautyLevelfloat是否返回美颜后的图片,取值0~1的浮点值,代表美颜效果的程度N09.6
    maxWidthint图片的最大宽度. 过大将被等比缩小N不限
    maxHeightint图片的最大高度. 过大将被等比缩小N不限
    allowEditbool是否允许编辑(框选). 为true时,拍照时会有一个方形的选框Nfalse
    useFrontCamerabool为false表示后置摄像头,为true表示前置摄像头,如果设备不支持前置摄像头,则为后置摄像头。Nfalse9.0(only iOS)
    multimediaConfigdictionary当multimediaConfig结点存在时,选择 APMultimedia 作为上传存储位置,忽略upload和uploadTo结点
    可配置的键值:
    business 该项业务存储标识,默认为“NebulaBiz”
    compress 压缩等级,默认为4。 0-低质量,1-中质量,2-高质量,3-不压缩,4-根据网络情况自动选择
    N9.9
    storeOriginalbool图片拾取上传时,可以选择是否返回“未经quality/maxWidth/maxHeight/compress等入参导致的有损变换”的”用户选择(或编辑)后的原始图片”的物理暂存路径。Nfalse9.9

    出参

    回调函数带入的参数result: {error, dataURL, fileURL, originalFileURL, useFrontCamera, scene, multimediaID}

    名称类型描述版本
    errorint错误码(10:用户取消;11:操作失败(权限不够))
    dataURLstringbase64编码的图片数据
    fileURLstring图片文件URL
    originalFileURLstring相册或拍摄(编辑后)的原图的物理暂存路径
    useFrontCamerabool标识拍照时用户是否选择了前置摄像头,为true表示前置摄像头,为false表示后置摄像头9.6
    scenestring标识用户获取照片的渠道,值为camera或assets,camera代表拍照,assets代表从相册选择9.6
    multimediaIDstring标识上传图片在APMultimedia中的identifier9.9