拍照/选择照片
不推荐使用,建议使用新的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>
AlipayJSBridge.call('photo', {
dataType,
imageFormat,
quality,
maxWidth,
maxHeight,
allowEdit,
multimediaConfig: { // 可选,仅当该项被配置时,图片被传输至 APMultimedia
compress, // 可选,默认为4。 0-低质量,1-中质量,2-高质量,3-不压缩,4-根据网络情况自动选择
business // 可选,默认为“NebulaBiz”
}
}, fn);
名称 | 类型 | 描述 | 必选 | 默认值 | 版本 |
---|---|---|---|---|---|
dataType | string | 结果数据格式: dataURL: base64编码的图片数据 fileURL: 图片在文件系统中的url 图片存放于临时目录中,钱包退出时被清除 | Y | ‘dataURL’ | |
imageFormat | string | jpg / png | N | ‘jpg’ | |
quality | int | jpg的图片质量, 取值1到100 | N | 75 | |
beautyLevel | float | 是否返回美颜后的图片,取值0~1的浮点值,代表美颜效果的程度 | N | 0 | 9.6 |
maxWidth | int | 图片的最大宽度. 过大将被等比缩小 | N | 不限 | |
maxHeight | int | 图片的最大高度. 过大将被等比缩小 | N | 不限 | |
allowEdit | bool | 是否允许编辑(框选). 为true时,拍照时会有一个方形的选框 | N | false | |
useFrontCamera | bool | 为false表示后置摄像头,为true表示前置摄像头,如果设备不支持前置摄像头,则为后置摄像头。 | N | false | 9.0(only iOS) |
multimediaConfig | dictionary | 当multimediaConfig结点存在时,选择 APMultimedia 作为上传存储位置,忽略upload和uploadTo结点 可配置的键值: business 该项业务存储标识,默认为“NebulaBiz” compress 压缩等级,默认为4。 0-低质量,1-中质量,2-高质量,3-不压缩,4-根据网络情况自动选择 | N | 9.9 | |
storeOriginal | bool | 图片拾取上传时,可以选择是否返回“未经quality/maxWidth/maxHeight/compress等入参导致的有损变换”的”用户选择(或编辑)后的原始图片”的物理暂存路径。 | N | false | 9.9 |
回调函数带入的参数result: {error, dataURL, fileURL, originalFileURL, useFrontCamera, scene, multimediaID}
名称 | 类型 | 描述 | 版本 |
---|---|---|---|
error | int | 错误码(10:用户取消;11:操作失败(权限不够)) | |
dataURL | string | base64编码的图片数据 | |
fileURL | string | 图片文件URL | |
originalFileURL | string | 相册或拍摄(编辑后)的原图的物理暂存路径 | |
useFrontCamera | bool | 标识拍照时用户是否选择了前置摄像头,为true表示前置摄像头,为false表示后置摄像头 | 9.6 |
scene | string | 标识用户获取照片的渠道,值为camera或assets,camera代表拍照,assets代表从相册选择 | 9.6 |
multimediaID | string | 标识上传图片在APMultimedia中的identifier | 9.9 |