photo 选照片

优质
小牛编辑
130浏览
2023-12-01
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 />
<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