相机相册

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

语法:

  1. summer.openCamera(params);

参数:

  • callback:拍照成功的回调函数,保存照片本地的存储地址;
  • compressionRatio:按比例压缩图片大小,值为0-1,例如:”compressionRatio” : 0.5(压缩之后的图片通过args.compressImgPath获取
  • cameraType: 值:custom,调用自定义相机,用于在一个页面拍照多张照片,解决了系统相机拍照多张容易崩溃的问题,例如:”cameraType” : “custom”
  • orientation: 摄相头取向,值为front时默认打开前置摄相头,值为rear时默认打开后置摄相头

示例代码:

  1. summer.openCamera({
  2. callback : function(args){
  3. summer.toast({
  4. msg: args.imgPath
  5. });
  6. }
  7. });

用例github下载地

summer.openPhotoAlbum()

打开系统相册

语法:

  1. summer.openPhotoAlbum(params);

参数:

  • callback:选取照片成功后成功的回调,保存照片本地的存储地址;
  • type:值为multiple时,表示支持选多张图片;为其它值或不传时为只能单选
  • maxCount:最多选择的图片个数,默认最多选9张,此属性需要和type搭配使用
  • compressionRatio:按比例压缩图片大小,值为0-1,例如:”compressionRatio” : 0.5;注:type为multiple时不支持此参数

示例代码1:

  1. summer.openPhotoAlbum({
  2. callback : function (args){
  3. summer.toast({
  4. msg: args.imgPath
  5. });
  6. }
  7. });

返回值:

  1. {
  2. "imgPath":"/storage/emulated/0/DCIM/Camera/IMG_20180113_184311_HHT.jpg"
  3. }

示例代码2:

  1. summer.openPhotoAlbum({
  2. type : "multiple",//支持选多张图片
  3. callback : function (args){
  4. summer.toast({
  5. msg: args.imgPath
  6. });
  7. }
  8. });

返回值:

  1. {"imgPaths":
  2. [{"imgPath":"/storage/emulated/0/DCIM/Screenshots/Screenshot_2018-01-19-11-29-54-023_com.yonyou.moli.png"},
  3. {"imgPath":"/storage/emulated/0/DCIM/Camera/IMG_20180113_184311_HHT.jpg"}]
  4. }

用例github下载地

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

语法:

  1. summer.capturePhoto(params);

参数:

  • params : 传递的一个json对象,内部为成功的回调函数;

示例代码:

  1. summer.capturePhoto({
  2. callback : function(args) {
  3. summer.toast({
  4. msg: args.imgPath
  5. });
  6. }
  7. });

用例github下载地

summer.getAppAlbumPath()

获取相机服务存放照片的存储路径

示例代码:

  1. var albumPath = summer.getAppAlbumPath();
  2. summer.toast({
  3. msg: albumPath
  4. });

用例github下载地

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

示例代码:

  1. var albumPath = summer.getAlbumPath();
  2. summer.toast({
  3. msg: albumPath
  4. });

用例github下载地

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

语法:

  1. summer.callService("UMGraphics.watermark", data, false);

参数:

  • data:json格式
    • src:源图片路径
    • target:目标图片路径
    • textGroup:json格式
      • text:水印文字
      • style:水印文字样式,json格式,top上|left左|right右|bottom底,font-size字体大小
    • callback:回调函数,返回参数属性watermarkFile:目标图片路径

示例代码:

  1. //textgroup=[{text:要打上的问题,style:设置的style}]
  2. var textgroup = [{
  3. text:"水印文字1",
  4. style:{"left":"10","bottom":"10","font-size":"8"}
  5. }, {
  6. text:"水印文字2",
  7. style:{"left":"10","bottom":"20","font-size":"8"}
  8. }];
  9. var data = {
  10. "src":"water_path",//源图片路径
  11. "target":"water_path",//目标图片路径
  12. "textGroup":textgroup,
  13. "callback" : "watermarkCallback()"
  14. };
  15. summer.callService("UMGraphics.watermark", data, false);
  16. function watermarkCallback(args){
  17. summer.toast({
  18. msg: JSON.stringify(args)
  19. });
  20. }

录制小视频

使用此API需要在config.xml中配置summer-plugin-video插件

注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)

Android需申请的权限:
android.permission.CAMERA
android.permission.RECORD_AUDIO

  1. cordova.require("summer-plugin-video.Video").open({}, function(res) {
  2. if (res.type == 1) {
  3. //视频
  4. summer.toast({
  5. msg: res.path
  6. });
  7. //self.videoUpload(res.path);
  8. } else if (res.type == 2) {
  9. summer.toast({
  10. msg: res.path
  11. });
  12. }
  13. })

返回值

  • 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

语法:

  1. summer.openScanner(params);

参数:

  • callback:扫描二维码成功后返回的函数,返回的数据中含有扫描的内容;

示例代码:

  1. summer.openScanner({
  2. callback : function (args){
  3. summer.toast({
  4. msg: args.umdcode
  5. });
  6. }
  7. });

用例github下载地

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

语法:

  1. ZBar.scan(params, "success()", "fail()");

参数:

  • params:
    • zxing:设置扫描仪类型,参数zxing为true时,效果和summer.openScanner()相同,取值为false或者不传参数时,扫描更精准。
    • buttons:在扫描框下自定义操作按钮。
    • albumVisible:设置是否显示相册操作按钮,true(默认)是显示 , false是禁用从相册选取二维码。
  • success: 成功回调,扫描结果将已成功回调参数返回;
  • fail: 失败回调;

示例代码1:

  1. var params = {zxing : false};
  2. ZBar.scan(params, function(args){
  3. summer.toast({
  4. msg: args
  5. });
  6. }, function(args){
  7. summer.toast({
  8. msg: args
  9. });
  10. });

示例代码2:

  1. var params = {
  2. zxing : false,
  3. buttons : [{
  4. image : "img/xxx.png", //图片路径
  5. title : "图片名称",
  6. tag : "0" //按钮索引
  7. },{
  8. image : "img/xxx.png", //图片路径
  9. title : "图片名称",
  10. tag : "1" //按钮索引
  11. }]
  12. };
  13. ZBar.scan(params, function(args){
  14. summer.toast({
  15. msg: args
  16. });
  17. if(args.tag == "1"){
  18. summer.toast({
  19. msg: "你点击了第二个按钮"
  20. });
  21. }
  22. }, function(args){
  23. summer.toast({
  24. msg: args
  25. });
  26. });

示例代码3:(禁用从相册中选取二维码)

  1. var params = {zxing : false,albumVisible : false};
  2. ZBar.scan(params, function(args){
  3. summer.toast({
  4. msg: args
  5. });
  6. }, function(args){
  7. summer.toast({
  8. msg: args
  9. });
  10. });

summer.generateQRCode()

把字符串生成二维码

语法:

  1. summer.generateQRCode(size,content);

参数:

  • size:Number 二维码正方形的宽高;
  • content:String 需要生成二维码的内容

示例代码:

  1. var twocodepath=summer.generateQRCode({
  2. size : 30,//二维码正方形的宽高
  3. content : "text"//生成二维码所需的源文字 string类型
  4. });
  5. summer.toast({
  6. msg: twocodepath
  7. });

用例github下载地

文档更新时间: 2018-10-29 16:55