BBASMCanvasPlugin.h 7.78 KB
//
//  BBASMCanvasPlugin.h
//  SWAN
//
//  Created by baidu on 09/03/2018.
//  Copyright © 2018 baidu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <BBASchemeDispatcher/BBASDPluginBase.h>

@interface BBASMCanvasPlugin : BBASDPluginBase

/**
 * 描  述: 插入创建命令
 * 示  例: baiduboxapp://swanAPI/canvas/insert?params={"slaveId":"3","canvasId":"mycanvas","position":{"top":"337","left":"0","width":"0","height":"0"},"hide":"0","disableScroll":"0","gesture":"0"}&callback=_bdbox_js_238&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_canvas_insert
 * 备  注:
 * ********** description ************
 * @name:      canvas.insert
 * @authority: swanAPI
 * @path:      /canvas/insert
 * @args:      [{"name":"canvasId","value":"string="}, {"name": "componentId","value": "string="},{"name":"slaveId","value":"string"}, {"name":"hide","value":"string"}, {"name":"disableScroll","value":"string"}, {"name":"gesture","value":"string"}, {"name":"position","value":"Object"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)insert:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 更新命令
 * 示  例: baiduboxapp://swanAPI/canvas/update?params={"canvasId":"5","position":{"left":"50","top":"50","width":"50","height":"50"},"hide":"1","disableScroll":"1","gesture":"1","slaveId":"5"}&callback=_bdbox_js_36&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_canvas_update
 * 备  注:
 * ********** description ************
 * @name:      canvas.update
 * @authority: swanAPI
 * @path:      /canvas/update
 * @args:      [{"name":"canvasId","value":"string="}, {"name": "componentId","value": "string="},{"name":"slaveId","value":"string"}, {"name":"hide","value":"string"}, {"name":"disableScroll","value":"string"}, {"name":"gesture","value":"string"}, {"name":"position","value":"Object"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)update:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 删除命令
 * 示  例: baiduboxapp://swanAPI/canvas/remove?params={"canvasId":"5","slaveId":"5"}&callback=_bdbox_js_37&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_canvas_remove
 * 备  注:
 * ********** description ************
 * @name:      canvas.remove
 * @authority: swanAPI
 * @path:      /canvas/remove
 * @args:      [{"name":"canvasId","value":"string="},{"name": "componentId","value": "string="}, {"name":"slaveId","value":"string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)remove:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 绘制命令
 * 示  例: baiduboxapp://swanAPI/canvas/drawCanvas?params={“canvasId”:”mycanvas”,”slaveId:”5”,actions”:[“”],”reserve”:”1”}&callback=_bdbox_js_222&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_canvas_drawcanvas
 * 备  注:
 * ********** description ************
 * @name:      canvas.drawCanvas
 * @authority: swanAPI
 * @path:      /canvas/drawCanvas
 * @args:      [{"name":"slaveId","value":"string"}, {"name":"canvasId","value":"string="},{"name": "componentId","value": "string="}, {"name":"actions","value":"string"}, {"name":"cb","value":"string"}, {"name":"reserve","value":"string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)drawCanvas:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 导出图片
 * 示  例: baiduboxapp://swanAPI/canvas/toTempFilePath?params={"canvasId":"mycanvas","x":"100","y":"200","width":"50","height":"50","destWidth":"100","destHeight":"100","fileType":"jpg","quality":"0.8","cb":"_bdbox_pjs_31"}&callback=_bdbox_js_45&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_canvas_totempfilepath
 * 备  注:
 * ********** description ************
 * @name:      canvasToTempFilePath
 * @authority: swanAPI
 * @path:      /canvas/toTempFilePath
 * @args:      [{"name":"canvasId","value":"string="}, {"name": "componentId","value": "string="},{"name":"slaveId","value":"string="}, {"name":"x","value":"string="}, {"name":"y","value":"string="}, {"name":"width","value":"string="}, {"name":"height","value":"string="}, {"name":"destWidth","value":"string="}, {"name":"destHeight","value":"string="}, {"name":"fileType","value":"string="}, {"name":"quality","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)toTempFilePath:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 获取图片信息
 * 示  例: baiduboxapp://swanAPI/canvas/getImageData?params={"canvasId":"myCanvas","x":"0","y":"0","width":"100","height":"100","cb":"_bdbox_pjs_49"}&callback=_bdbox_js_50&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_canvas_getimagedata
 * 备  注:
 * ********** description ************
 * @name:      canvasGetImageData
 * @authority: swanAPI
 * @path:      /canvas/getImageData
 * @args:      [{"name":"cb","value":"string"}, {"name":"canvasId","value":"string="}, {"name": "componentId","value": "string="},{"name":"slaveId","value":"string="}, {"name":"x","value":"string"}, {"name":"y","value":"string"}, {"name":"width","value":"string"}, {"name":"height","value":"string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)getImageData:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 将图片绘制到画布
 * 示  例: baiduboxapp://swanAPI/canvas/putImageData?params={"canvasId":"myCanvas","x":"0","y":"0","width":"1","data":"iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAAXNSR0IArs4c6QAAABxpRE9UAAAAAgAAAAAAAAAyAAAAKAAAADIAAAAyAAACrZe0MjAAAAJ5SURBVHgB7NU/SA==","cb":"_bdbox_pjs_77"}&callback=_bdbox_js_78&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_canvas_putimagedata
 * 备  注:
 * ********** description ************
 * @name:      canvasPutImageData
 * @authority: swanAPI
 * @path:      /canvas/putImageData
 * @args:      [{"name":"cb","value":"string"}, {"name":"data","value":"string"}, {"name":"canvasId","value":"string="}, {"name": "componentId","value": "string="},{"name":"slaveId","value":"string="}, {"name":"x","value":"string"}, {"name":"y","value":"string"}, {"name":"width","value":"string"}, {"name":"height","value":"string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)putImageData:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 计算文本的宽度
 * 示  例: baiduboxapp://swanAPI/canvas/measureTextSync?params=$params&callback=$callback&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_canvas_measuretextsync
 * 备  注:
 * ********** description ************
 * @name:      canvas.measureTextSync
 * @authority: swanAPI
 * @path:      /canvas/measureTextSync
 * @args:      [{"name": "slaveId", "value": "string"}, {"name": "canvasId", "value": "string="}, {"name": "componentId","value": "string="},{"name": "text", "value": "string="}, {"name": "font", "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.prompt"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.canvas.measureTextSync"}}}
 */
- (void)measureTextSync:(BBASchemeDispatcher *)dispatcher;

#pragma mark - not API
+ (NSDictionary *)measureTextWithAppID:(NSString *)appID params:(NSDictionary *)params;

@end