BBASMPlugin+image.h 6.86 KB
//
//  BBASMPlugin+image.h
//  SWAN
//
//  Created by baidu on 2018/3/12.
//  Copyright © 2018年 baidu. All rights reserved.
//

#import "BBASMPlugin.h"

#define BBASMImageModule  @"mnp_image"

@interface BBASMPlugin (image)

/**
 * 描  述: 获取小程序图片信息,仅支持在小程序框架中使用
 * 示  例: baiduboxapp://swanAPI/getImageInfo?params={"src":"image_url"}
 * 文  档: http://ft.baidu.com/#/scheme/swan_getimageinfo
 * 备  注:
 * ********** description ************
 * @name:      getImageInfo
 * @authority: swanAPI
 * @path:      /getImageInfo
 * @args:      [{"name": "src", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
-(void)getImageInfo:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 从相机或相册中选择图片
 * 示  例: baiduboxapp://swanAPI/chooseImage?params={"count":"0-9","cb":"_bdbox_pjs_884","sizeType":"original/compressed"}
 * 文  档: http://ft.baidu.com/#/scheme/swan_chooseimage
 * 备  注:
 * ********** description ************
 * @name:      chooseImage
 * @authority: swanAPI
 * @path:      /chooseImage
 * @args:      [{"name": "count", "value": "string="}, {"name": "sizeType", "value": "string[]="}, {"name": "sourceType", "value": "string[]="}, {"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
-(void)chooseImage:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 该端能力可以调起相册,可同时选择图片和视频,支持最大选择个数、是否压缩
 * 示  例: baiduboxapp://swanAPI/chooseAlbum?params={"count”:”9”,”mode":"both","compressed":true,"cb":"_bdbox_pjs_514"}&callback=__jsna_109&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_choosealbum
 * 备  注:
 * ********** description ************
 * @name:      chooseAlbum
 * @authority: swanAPI
 * @path:      /chooseAlbum
 * @args:       [{"name": "count",  "value": "string="},  {"name": "mode",  "value": "string="},  {"name": "compressed",  "value": "boolean="},  {"name": "cb",  "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)chooseAlbum:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 将图片保存到相册,只有小程序可以用
 * 示  例: baiduboxapp://swanAPI/saveImageToPhotosAlbum?params=%7b%22file_path%22%3a%22aaaa%22%7d
 * 文  档: http://ft.baidu.com/#/scheme/swan_saveimagetophotosalbum
 * 备  注:
 * ********** description ************
 * @name:      saveImageToPhotosAlbum
 * @authority: swanAPI
 * @path:      /saveImageToPhotosAlbum
 * @args:      [{"name": "filePath",  "value": "string"},  {"name": "cb",  "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
-(void)saveImageToPhotosAlbum:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: img标签支持bdfile获取图片
 * 示  例: baiduboxapp://swanAPI/getLocalImgData?params=$params&callback=$callback
 * 文  档: http://ft.baidu.com/#/scheme/swan_getlocalimgdata
 * 备  注:
 * ********** description ************
 * @name:      getLocalImgData
 * @authority: swanAPI
 * @path:      /getLocalImgData
 * @args:      [{"name": "filePath", "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)getLocalImgData:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 压缩图片并存储本地临时路径
 * 示  例: baiduboxapp://swanAPI/compressImage?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/#/apidetail/828
 * 备  注:
 * ********** description ************
 * @name:      compressImage
 * @authority: swanAPI
 * @path:      /compressImage
 * @args:       [{"name": "src", "value": "string"}, {"name": "quality", "value": "number="}, {"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.image.compressImage"}}}
*/
- (void)compressImage:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 预览图片小程序侧的描述表
 * 示  例: baiduboxapp://swanAPI/previewImage?params={"urls":["https://xxx.JPEG","https://yyy.JPEG"]}&callback=_bdbox_js_595&upgrade=0&oauthType=swan
 * 文  档: http://ft.baidu.com/#/scheme/utils_previewimage
 * 备  注:
 * ********** description ************
 * @name:      previewImage
 * @authority: swanAPI
 * @path:      /previewImage
 * @args:      [{"name": "urls", "value": "string[]="}, {"name": "images", "value": "Object[]="}, {"name": "current", "value": "string="}, {"name": "from", "value": "string="},{"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "webdegrade": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.image.previewImage"}}}
 */
- (void)previewImage:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 调起图片操作菜单
 * 示  例: baiduboxapp://swanAPI/callImageMenu?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1375
 * 备  注:
 * ********** description ************
 * @name:      boxjs.callImageMenu
 * @authority: swanAPI
 * @path:      /callImageMenu
 * @args:      [{"name": "menuItems", "value": "Array="}, {"name": "imageURL", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.image.callImageMenu"}}}
 */
- (void)callImageMenu:(BBASchemeDispatcher *)dispatcher;

#pragma mark - not API

+ (NSDictionary *)compressImageWithAppID:(NSString *)appID
                                  params:(NSDictionary *)params
                              completion:(void (^)(NSDictionary *completionData))completion;

/**
 * @brief 封装方法给 shecme 和 jsbinding 使用调起预览图片
 *
 * @param appID appID
 * @param param 参数
 * @param action 方法名称
 * @return 返回调起结果
 */
+ (NSDictionary *)previewImageWithAppID:(NSString *)appID param:(NSDictionary *)param
                             actionName:(NSString *)action
                              completion:(void (^)(NSDictionary *completionData))completion;

/**
 * @brief 调起图片操作菜单
 *
 * @param appID appID
 * @param params 参数
 * @return 返回调起结果
 */
+ (NSDictionary *)callImageMenuWithAppID:(NSString *)appID
                                  params:(NSDictionary *)params;

@end