相机相册
summer.openCamera()
该方法用来打开系统相机,支持回调callback。通常获取相机拍摄的照片通过callback来实现。
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.CAMERA
android.permission.READ_PHONE_STATE
android.permission.WRITE_EXTERNAL_STORAGE
语法:
summer.openCamera(params);
参数:
- callback:拍照成功的回调函数,保存照片本地的存储地址;
- compressionRatio:按比例压缩图片大小,值为0-1,例如:”compressionRatio” : 0.5(压缩之后的图片通过args.compressImgPath获取)
- cameraType: 值:custom,调用自定义相机,用于在一个页面拍照多张照片,解决了系统相机拍照多张容易崩溃的问题,例如:”cameraType” : “custom”
- orientation: 摄相头取向,值为front时默认打开前置摄相头,值为rear时默认打开后置摄相头
示例代码:
summer.openCamera({
callback : function(args){
summer.toast({
msg: args.imgPath
});
}
});
summer.openPhotoAlbum()
打开系统相册
语法:
summer.openPhotoAlbum(params);
参数:
- callback:选取照片成功后成功的回调,保存照片本地的存储地址;
- type:值为multiple时,表示支持选多张图片;为其它值或不传时为只能单选
- maxCount:最多选择的图片个数,默认最多选9张,此属性需要和type搭配使用
- compressionRatio:按比例压缩图片大小,值为0-1,例如:”compressionRatio” : 0.5;注:type为multiple时不支持此参数
示例代码1:
summer.openPhotoAlbum({
callback : function (args){
summer.toast({
msg: args.imgPath
});
}
});
返回值:
{
"imgPath":"/storage/emulated/0/DCIM/Camera/IMG_20180113_184311_HHT.jpg"
}
示例代码2:
summer.openPhotoAlbum({
type : "multiple",//支持选多张图片
callback : function (args){
summer.toast({
msg: args.imgPath
});
}
});
返回值:
{"imgPaths":
[{"imgPath":"/storage/emulated/0/DCIM/Screenshots/Screenshot_2018-01-19-11-29-54-023_com.yonyou.moli.png"},
{"imgPath":"/storage/emulated/0/DCIM/Camera/IMG_20180113_184311_HHT.jpg"}]
}
summer.capturePhoto()
获取手机相册图片
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.CAMERA
android.permission.READ_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
android.permission.WRITE_EXTERNAL_STORAGE
语法:
summer.capturePhoto(params);
参数:
- params : 传递的一个json对象,内部为成功的回调函数;
示例代码:
summer.capturePhoto({
callback : function(args) {
summer.toast({
msg: args.imgPath
});
}
});
summer.getAppAlbumPath()
获取相机服务存放照片的存储路径
示例代码:
var albumPath = summer.getAppAlbumPath();
summer.toast({
msg: albumPath
});
summer.getAlbumPath()
获取相册路径 - Android独有
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.CAMERA
android.permission.READ_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
android.permission.WRITE_EXTERNAL_STORAGE
示例代码:
var albumPath = summer.getAlbumPath();
summer.toast({
msg: albumPath
});
UMGraphics.watermark()
给图片加水印
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.CAMERA
android.permission.READ_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
android.permission.WRITE_EXTERNAL_STORAGE
语法:
summer.callService("UMGraphics.watermark", data, false);
参数:
- data:json格式
- src:源图片路径
- target:目标图片路径
- textGroup:json格式
- text:水印文字
- style:水印文字样式,json格式,top上|left左|right右|bottom底,font-size字体大小
- callback:回调函数,返回参数属性watermarkFile:目标图片路径
示例代码:
//textgroup=[{text:要打上的问题,style:设置的style}]
var textgroup = [{
text:"水印文字1",
style:{"left":"10","bottom":"10","font-size":"8"}
}, {
text:"水印文字2",
style:{"left":"10","bottom":"20","font-size":"8"}
}];
var data = {
"src":"water_path",//源图片路径
"target":"water_path",//目标图片路径
"textGroup":textgroup,
"callback" : "watermarkCallback()"
};
summer.callService("UMGraphics.watermark", data, false);
function watermarkCallback(args){
summer.toast({
msg: JSON.stringify(args)
});
}
录制小视频
使用此API需要在config.xml中配置summer-plugin-video插件
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.CAMERA
android.permission.RECORD_AUDIO
cordova.require("summer-plugin-video.Video").open({}, function(res) {
if (res.type == 1) {
//视频
summer.toast({
msg: res.path
});
//self.videoUpload(res.path);
} else if (res.type == 2) {
summer.toast({
msg: res.path
});
}
})
返回值
- res:json格式
- path:视频或源图片路径
- diagramPath:如果是视频,则返回缩略图路径
扫描仪
summer.openScanner()
打开二维码扫描
注意1:需要在config.xml中添加插件”summer-plugin-twodimensioncode”
注意2:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.CAMERA
语法:
summer.openScanner(params);
参数:
- callback:扫描二维码成功后返回的函数,返回的数据中含有扫描的内容;
示例代码:
summer.openScanner({
callback : function (args){
summer.toast({
msg: args.umdcode
});
}
});
ZBar.scan()
注意1:需要在config.xml中添加插件”cordova-plugin-summer-zbar”。此插件和”summer-plugin-twodimensioncode”互斥,不能同时使用。
注意2:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.CAMERA
语法:
ZBar.scan(params, "success()", "fail()");
参数:
- params:
- zxing:设置扫描仪类型,参数zxing为true时,效果和summer.openScanner()相同,取值为false或者不传参数时,扫描更精准。
- buttons:在扫描框下自定义操作按钮。
- albumVisible:设置是否显示相册操作按钮,true(默认)是显示 , false是禁用从相册选取二维码。
- success: 成功回调,扫描结果将已成功回调参数返回;
- fail: 失败回调;
示例代码1:
var params = {zxing : false};
ZBar.scan(params, function(args){
summer.toast({
msg: args
});
}, function(args){
summer.toast({
msg: args
});
});
示例代码2:
var params = {
zxing : false,
buttons : [{
image : "img/xxx.png", //图片路径
title : "图片名称",
tag : "0" //按钮索引
},{
image : "img/xxx.png", //图片路径
title : "图片名称",
tag : "1" //按钮索引
}]
};
ZBar.scan(params, function(args){
summer.toast({
msg: args
});
if(args.tag == "1"){
summer.toast({
msg: "你点击了第二个按钮"
});
}
}, function(args){
summer.toast({
msg: args
});
});
示例代码3:(禁用从相册中选取二维码)
var params = {zxing : false,albumVisible : false};
ZBar.scan(params, function(args){
summer.toast({
msg: args
});
}, function(args){
summer.toast({
msg: args
});
});
summer.generateQRCode()
把字符串生成二维码
语法:
summer.generateQRCode(size,content);
参数:
- size:Number 二维码正方形的宽高;
- content:String 需要生成二维码的内容
示例代码:
var twocodepath=summer.generateQRCode({
size : 30,//二维码正方形的宽高
content : "text"//生成二维码所需的源文字 string类型
});
summer.toast({
msg: twocodepath
});