PLVContainerWebViewBridge

Objective-C

@interface PLVContainerWebViewBridge : NSObject

/// PLVContainerWebViewBridge 代理
@property (nonatomic, weak) id<PLVContainerWebViewBridgeDelegate> delegate;

/// 初始化方法
/// @param webView webview对象
/// @param webViewDelegate webview代理
- (instancetype)initBridgeWithWebview:(WKWebView *)webView webviewDelegate:(id<WKNavigationDelegate>)webViewDelegate;

#pragma mark -  [ native -> js ]
#pragma mark 通用方法

/// 切换教具
/// @param type 教具类型
- (void)changeApplianceType:(PLVContainerApplianceType)type;

/// 修改文本字体大小
/// @param fontSize 字体大小
- (void)changeFontSize:(NSUInteger)fontSize;

/// 修改线条宽度
/// @param width 线条宽度
- (void)changeLineWidth:(NSUInteger)width;

/// 修改笔触颜色
/// @param hexColor 16进制颜色字符串
- (void)changeStrokeHexColor:(NSString *)hexColor;

/// 执行清空画板操作
- (void)doClear;

/// 执行重做画板操作
- (void)doRedo;

/// 执行撤回画板操作
- (void)doUndo;

/// 执行删除画笔操作
- (void)doDelete;

/// 完成编辑文字
/// @note 用于native完成文字输入后返回给webView
/// @param text 文字
- (void)finishEditText:(NSString *)text;

/// 取消编辑文字
- (void)cancelEditText;

/// 授予画笔权限
/// @param callback js回调
- (void)givePaintBrushAuth:(PLVContainerResponseCallback)callback;

/// 移除画笔权限
/// @param callback js回调
- (void)removePaintBrushAuth:(PLVContainerResponseCallback)callback;

/// 插入 socket 数据
/// @note native 在接受以下socket消息时,需将消息转发给js:
/// 'onSliceID'、'onSliceDraw'、'onSliceOpen'、'onSliceClose'、'onSliceControl'
/// @param socketData socket原数据
- (void)joinSocketData:(NSString *)socketData;

#pragma mark 讲师专属方法

/// 打开文档
/// @note 讲师专属方法
/// @param autoId 文档autoId
- (void)openPptWithAutoId:(NSUInteger)autoId;

/// 关闭文档
/// @note 讲师专属方法
/// @param autoId 文档autoId
- (void)closePptWithAutoId:(NSUInteger)autoId;

/// 操作容器(ppt、word各类文档统称)
/// @note 讲师专属方法
/// @param containerId 容器内容Id
/// @param close 关闭、打开
- (void)operateContainerWithContainerId:(NSString *)containerId close:(BOOL)close;

/// 重置画板缩放
/// @note 讲师专属方法
- (void)resetZoom;

#pragma mark - [ js -> native ]
#pragma mark 通用方法注册

/// 注册'sendSocketData' 方法
/// 用于把 webView 接收到的操作画板产生的数据,通过 socket 发送给聊天室
- (void)registerSendSocketData;

/// 注册'startEditText' 方法
/// 用于接收 webView 开始输入文字 回调
- (void)registerStartEditText;

/// 注册'toggleOperationStatus' 方法
/// 用于接收 webView 刷新画笔工具是否可用状态回调
- (void)registerToggleOperationStatus;

#pragma mark 讲师专属方法注册

/// 注册'refreshMinimizeContainerData' 方法
/// @note 讲师专属方法
/// 用与接收 webView 刷新最小化的容器数据
- (void)registerRefreshMinimizeContainerData;

/// 注册'refreshPptContainerTotal' 方法
/// @note 讲师专属方法
/// 用与接收 webView 刷新打开的 PPT 容器数量
- (void)registerRefreshPptContainerTotal;

/// 注册'zoomPercenChange' 方法
/// @note 讲师专属方法
/// 用与接收 webView 回调当前 画板缩放百分比
- (void)registerZoomPercenChange;

#pragma mark 学生专属方法注册

/// 注册'changeAppliance' 方法
/// @note 学生专属方法
/// 用于接收 webview 切换画笔工具类型 回调
- (void)registerChangeApplianceType;

/// 注册'changeStrokeStyle' 方法
/// @note 学生专属方法
/// 用于接收 webview 切换画笔颜色 回调
- (void)registerChangeStrokeHexColor;

/// 注册'changeFontSize' 方法
/// @note 学生专属方法
/// 用于接收 webview 切换文本字体大小 回调
- (void)registerChangeFontSize;

/// 注册'changeLineWidth' 方法
/// @note 学生专属方法
/// 用于接收 webview 切换线条宽度 回调
- (void)registerChangeLineWidth;

#pragma mark - [ native -> socket]
#pragma mark 讲师专属方法

/// 授予画笔权限
/// @note 用于讲师授予学生画笔权限
/// @param userId 用户Id
/// @param sessionId sessionId
- (void)setPaintBrushAuthWithUserId:(NSString *)userId sessionId:(NSString *)sessionId;

/// 移除画笔权限
/// @note 用于讲师移除学生画笔权限
/// @param userId 用户Id
- (void)removePaintBrushAuthWithUserId:(NSString *)userId;


@end

Swift

class PLVContainerWebViewBridge : NSObject

Undocumented

  • PLVContainerWebViewBridge 代理

    Declaration

    Objective-C

    @property (nonatomic, weak) id<PLVContainerWebViewBridgeDelegate> _Nullable delegate;

    Swift

    weak var delegate: PLVContainerWebViewBridgeDelegate? { get set }
  • 初始化方法

    Declaration

    Objective-C

    - (nonnull instancetype)initBridgeWithWebview:(nonnull WKWebView *)webView
                                  webviewDelegate:(nonnull id<WKNavigationDelegate>)
                                                      webViewDelegate;

    Swift

    init(bridgeWithWebview webView: WKWebView, webviewDelegate webViewDelegate: WKNavigationDelegate)

    Parameters

    webView

    webview对象

    webViewDelegate

    webview代理

通用方法

  • 切换教具

    Declaration

    Objective-C

    - (void)changeApplianceType:(PLVContainerApplianceType)type;

    Swift

    func change(_ type: PLVContainerApplianceType)

    Parameters

    type

    教具类型

  • 修改文本字体大小

    Declaration

    Objective-C

    - (void)changeFontSize:(NSUInteger)fontSize;

    Swift

    func changeFontSize(_ fontSize: UInt)

    Parameters

    fontSize

    字体大小

  • 修改线条宽度

    Declaration

    Objective-C

    - (void)changeLineWidth:(NSUInteger)width;

    Swift

    func changeLineWidth(_ width: UInt)

    Parameters

    width

    线条宽度

  • 修改笔触颜色

    Declaration

    Objective-C

    - (void)changeStrokeHexColor:(nonnull NSString *)hexColor;

    Swift

    func changeStrokeHexColor(_ hexColor: String)

    Parameters

    hexColor

    16进制颜色字符串

  • 执行清空画板操作

    Declaration

    Objective-C

    - (void)doClear;

    Swift

    func doClear()
  • 执行重做画板操作

    Declaration

    Objective-C

    - (void)doRedo;

    Swift

    func doRedo()
  • 执行撤回画板操作

    Declaration

    Objective-C

    - (void)doUndo;

    Swift

    func doUndo()
  • 执行删除画笔操作

    Declaration

    Objective-C

    - (void)doDelete;

    Swift

    func doDelete()
  • 完成编辑文字

    Note

    用于native完成文字输入后返回给webView

    Declaration

    Objective-C

    - (void)finishEditText:(nonnull NSString *)text;

    Swift

    func finishEditText(_ text: String)

    Parameters

    text

    文字

  • 取消编辑文字

    Declaration

    Objective-C

    - (void)cancelEditText;

    Swift

    func cancelEditText()
  • 授予画笔权限

    Declaration

    Objective-C

    - (void)givePaintBrushAuth:(nonnull PLVContainerResponseCallback)callback;

    Swift

    func givePaintBrushAuth(_ callback: @escaping PLVContainerResponseCallback)

    Parameters

    callback

    js回调

  • 移除画笔权限

    Declaration

    Objective-C

    - (void)removePaintBrushAuth:(nonnull PLVContainerResponseCallback)callback;

    Swift

    func removePaintBrushAuth(_ callback: @escaping PLVContainerResponseCallback)

    Parameters

    callback

    js回调

  • 插入 socket 数据

    Note

    native 在接受以下socket消息时,需将消息转发给js: ‘onSliceID'、'onSliceDraw'、'onSliceOpen'、'onSliceClose'、'onSliceControl’

    Declaration

    Objective-C

    - (void)joinSocketData:(nonnull NSString *)socketData;

    Swift

    func joinSocketData(_ socketData: String)

    Parameters

    socketData

    socket原数据

讲师专属方法

  • 打开文档

    Note

    讲师专属方法

    Declaration

    Objective-C

    - (void)openPptWithAutoId:(NSUInteger)autoId;

    Swift

    func openPpt(withAutoId autoId: UInt)

    Parameters

    autoId

    文档autoId

  • 关闭文档

    Note

    讲师专属方法

    Declaration

    Objective-C

    - (void)closePptWithAutoId:(NSUInteger)autoId;

    Swift

    func closePpt(withAutoId autoId: UInt)

    Parameters

    autoId

    文档autoId

  • 操作容器(ppt、word各类文档统称)

    Note

    讲师专属方法

    Declaration

    Objective-C

    - (void)operateContainerWithContainerId:(nonnull NSString *)containerId
                                      close:(BOOL)close;

    Swift

    func operateContainer(withContainerId containerId: String, close: Bool)

    Parameters

    containerId

    容器内容Id

    close

    关闭、打开

  • 重置画板缩放

    Note

    讲师专属方法

    Declaration

    Objective-C

    - (void)resetZoom;

    Swift

    func resetZoom()

通用方法注册

  • 注册'sendSocketData’ 方法 用于把 webView 接收到的操作画板产生的数据,通过 socket 发送给聊天室

    Declaration

    Objective-C

    - (void)registerSendSocketData;

    Swift

    func registerSendSocketData()
  • 注册'startEditText’ 方法 用于接收 webView 开始输入文字 回调

    Declaration

    Objective-C

    - (void)registerStartEditText;

    Swift

    func registerStartEditText()
  • 注册'toggleOperationStatus’ 方法 用于接收 webView 刷新画笔工具是否可用状态回调

    Declaration

    Objective-C

    - (void)registerToggleOperationStatus;

    Swift

    func registerToggleOperationStatus()

讲师专属方法注册

  • 注册'refreshMinimizeContainerData’ 方法

    Note

    讲师专属方法 用与接收 webView 刷新最小化的容器数据

    Declaration

    Objective-C

    - (void)registerRefreshMinimizeContainerData;

    Swift

    func registerRefreshMinimizeContainerData()
  • 注册'refreshPptContainerTotal’ 方法

    Note

    讲师专属方法 用与接收 webView 刷新打开的 PPT 容器数量

    Declaration

    Objective-C

    - (void)registerRefreshPptContainerTotal;

    Swift

    func registerRefreshPptContainerTotal()
  • 注册'zoomPercenChange’ 方法

    Note

    讲师专属方法 用与接收 webView 回调当前 画板缩放百分比

    Declaration

    Objective-C

    - (void)registerZoomPercenChange;

    Swift

    func registerZoomPercenChange()

学生专属方法注册

  • 注册'changeAppliance’ 方法

    Note

    学生专属方法 用于接收 webview 切换画笔工具类型 回调

    Declaration

    Objective-C

    - (void)registerChangeApplianceType;

    Swift

    func registerChangeApplianceType()
  • 注册'changeStrokeStyle’ 方法

    Note

    学生专属方法 用于接收 webview 切换画笔颜色 回调

    Declaration

    Objective-C

    - (void)registerChangeStrokeHexColor;

    Swift

    func registerChangeStrokeHexColor()
  • 注册'changeFontSize’ 方法

    Note

    学生专属方法 用于接收 webview 切换文本字体大小 回调

    Declaration

    Objective-C

    - (void)registerChangeFontSize;

    Swift

    func registerChangeFontSize()
  • 注册'changeLineWidth’ 方法

    Note

    学生专属方法 用于接收 webview 切换线条宽度 回调

    Declaration

    Objective-C

    - (void)registerChangeLineWidth;

    Swift

    func registerChangeLineWidth()

讲师专属方法

  • 授予画笔权限

    Note

    用于讲师授予学生画笔权限

    Declaration

    Objective-C

    - (void)setPaintBrushAuthWithUserId:(nonnull NSString *)userId
                              sessionId:(nonnull NSString *)sessionId;

    Swift

    func setPaintBrushAuthWithUserId(_ userId: String, sessionId: String)

    Parameters

    userId

    用户Id

    sessionId

    sessionId

  • 移除画笔权限

    Note

    用于讲师移除学生画笔权限

    Declaration

    Objective-C

    - (void)removePaintBrushAuthWithUserId:(nonnull NSString *)userId;

    Swift

    func removePaintBrushAuth(withUserId userId: String)

    Parameters

    userId

    用户Id