PLVWebViewBridge
@interface PLVWebViewBridge : NSObject
@property (nonatomic, weak) id<PLVWebViewBridgeProtocol> delegate;
+ (instancetype)bridgeWithWebview:(WKWebView *)webView webviewDelegate:(id<WKNavigationDelegate>)webViewDelegate;
+ (instancetype)bridgeWithWebview:(WKWebView *)webView;
- (void)setWebViewDelegate:(id<WKNavigationDelegate> __nullable)webViewDelegate;
#pragma mark - Call JS Method
/// 设置用户信息
/// @param userDict socket 用户登录信息
- (void)setUserInfo:(NSDictionary *)userDict;
#pragma mark 观看专用方法
/// 刷新PPT内容
/// @param jsonObject PPT内容
/// @param delay 延迟时间 (单位毫秒)
- (void)refreshPPTWithJsonObject:(NSDictionary *)jsonObject delay:(NSUInteger)delay;
/// 设置视频SEI信息
/// @param newTimeStamp 时间戳信息
- (void)setSEIData:(long)newTimeStamp;
/// 加载回放PPT
/// @param vid 回放视频的vid
- (void)pptStartWithVid:(NSString *)vid;
#pragma mark 推流专用方法
/// 设置或取消画笔权限
/// @param userType 用户权限, speaker 代表控制ppt权限+画笔权限
- (void)setPaintPermission:(NSString *)userType;
/// 设置画板是否处于可绘制状态
/// @param open 打开或关闭画板
- (void)setPaintStatus:(BOOL)open;
/// 告诉 h5 现在开始上课,h5 会清空画板
/// @param jsonDict 开始推流时发送的 socket 消息
- (void)setSliceStart:(id)jsonDict;
/// 切换 ppt 或白板
/// 如果切换的是文档,切换成功后触发回调 '-jsbridge_documentChangeWithAutoId:imageUrls:'
/// @param autoId 切换的文档的 autoId,如果是白板 autoId 为 0
/// @param pageNumber 切换到文档的第几页,-1 表示打开上次展示的页面
- (void)changePPTWithAutoId:(NSUInteger)autoId pageNumber:(NSInteger)pageNumber;
/// 设置画笔类型
/// @param type line - 自由笔;text - 文字;arrowLine - 箭头
- (void)setDrawType:(PLVWebViewBrushPenType)type;
/// 修改画笔颜色
/// @param hexString RGB色值,如红色为“#FF0000”
- (void)changeColor:(NSString *)hexString;
/// 进入画笔删除状态
- (void)toDelete;
/// 删除所有画笔
- (void)deleteAllPaint;
/// 完成文本输入
- (void)changeTextContent:(NSString *)content;
#pragma mark - Register JS Method
/// 注册 'sendSocketEvent' 方法
/// 用于把 h5 接收到的操作画板产生的数据,通过 socket 发送给聊天室
/// 用于开播场景时,开始推流才需要发送 h5 画板数据到聊天室
/// 配合回调 '-jsbridge_sendSocketEventWithJson:' 使用
- (void)registerSocketEventFunction;
#pragma mark 观看专用方法
/// 注册 'pptPrepare' 方法
/// 【回放时】用于PPT视图准备完毕时接收到通知
/// 配合回调 '-jsbridge_PPTHadPrepare' 使用
- (void)registerPPTPrepareFunction;
/// 注册 'videoDuration' 方法
/// 用于PPT视图需要获取视频回放播放器当前播放时间点时接收到通知
/// 配合回调 '-jsbridge_getCurrentPlaybackTime' 使用
- (void)registerVideoDurationFunction;
/// 注册 'changePPTPosition' 方法
/// 用于讲师发起PPT位置切换时接收到通知
/// 配合回调 '-jsbridge_changePPTPosition:' 使用
- (void)registerChangePPTPositionFunction;
#pragma mark 推流专用方法
/// 注册 'pptStatusChange' 方法
/// 用于文档翻页时接收到通知
/// 配合回调 '-jsbridge_pageStatusChangeWithAutoId:pageNumber:totalPage:pptStep:' 使用
- (void)registerPPTStatusChangeFunction;
/// 注册 'toEditText' 方法
/// 用于 webView 上准备输入文字时调用
/// 配合回调 '-jsbridge_documentInputWithText:textColor:' 使用
- (void)registerPPTInputFunction;
/// 注册 'whiteImages' 方法
/// 用于 webView 上白板预览图更新时调用
/// 配合回调 '-jsbridge_updateWhiteboardImageData:pageNumber:' 使用
- (void)registerWhiteImagesFunction;
@end
Undocumented
-
Undocumented
Declaration
Objective-C
@property (nonatomic, weak) id<PLVWebViewBridgeProtocol> delegateSwift
weak var delegate: PLVWebViewBridgeProtocol? { get set } -
Undocumented
Declaration
Objective-C
+ (instancetype)bridgeWithWebview:(WKWebView *)webView webviewDelegate:(id<WKNavigationDelegate>)webViewDelegate;Swift
convenience init(webview webView: WKWebView, webviewDelegate webViewDelegate: WKNavigationDelegate) -
Undocumented
Declaration
Objective-C
+ (instancetype)bridgeWithWebview:(WKWebView *)webView;Swift
convenience init(webview webView: WKWebView) -
Undocumented
Declaration
Objective-C
- (void)setWebViewDelegate:(id<WKNavigationDelegate> __nullable)webViewDelegate;Swift
func setWebViewDelegate(_ webViewDelegate: WKNavigationDelegate?)
-
设置用户信息
Declaration
Objective-C
- (void)setUserInfo:(nonnull NSDictionary *)userDict;Swift
func setUserInfo(_ userDict: [AnyHashable : Any])Parameters
userDictsocket 用户登录信息
-
刷新PPT内容
Declaration
Objective-C
- (void)refreshPPTWithJsonObject:(nonnull NSDictionary *)jsonObject delay:(NSUInteger)delay;Swift
func refreshPPT(withJsonObject jsonObject: [AnyHashable : Any], delay: UInt)Parameters
jsonObjectPPT内容
delay延迟时间 (单位毫秒)
-
设置视频SEI信息
Declaration
Objective-C
- (void)setSEIData:(long)newTimeStamp;Swift
func setSEIData(_ newTimeStamp: Int)Parameters
newTimeStamp时间戳信息
-
加载回放PPT
Declaration
Objective-C
- (void)pptStartWithVid:(nonnull NSString *)vid;Swift
func pptStart(withVid vid: String)Parameters
vid回放视频的vid
-
设置或取消画笔权限
Declaration
Objective-C
- (void)setPaintPermission:(nonnull NSString *)userType;Swift
func setPaintPermission(_ userType: String)Parameters
userType用户权限, speaker 代表控制ppt权限+画笔权限
-
设置画板是否处于可绘制状态
Declaration
Objective-C
- (void)setPaintStatus:(BOOL)open;Swift
func setPaintStatus(_ open: Bool)Parameters
open打开或关闭画板
-
告诉 h5 现在开始上课,h5 会清空画板
Declaration
Objective-C
- (void)setSliceStart:(nonnull id)jsonDict;Swift
func setSliceStart(_ jsonDict: Any)Parameters
jsonDict开始推流时发送的 socket 消息
-
切换 ppt 或白板 如果切换的是文档,切换成功后触发回调 ‘-jsbridge_documentChangeWithAutoId:imageUrls:’
Declaration
Objective-C
- (void)changePPTWithAutoId:(NSUInteger)autoId pageNumber:(NSInteger)pageNumber;Swift
func changePPT(withAutoId autoId: UInt, pageNumber: Int)Parameters
autoId切换的文档的 autoId,如果是白板 autoId 为 0
pageNumber切换到文档的第几页,-1 表示打开上次展示的页面
-
设置画笔类型
Declaration
Objective-C
- (void)setDrawType:(PLVWebViewBrushPenType)type;Swift
func setDraw(_ type: PLVWebViewBrushPenType)Parameters
typeline - 自由笔;text - 文字;arrowLine - 箭头
-
修改画笔颜色
Declaration
Objective-C
- (void)changeColor:(nonnull NSString *)hexString;Swift
func changeColor(_ hexString: String)Parameters
hexStringRGB色值,如红色为“#FF0000”
-
进入画笔删除状态
Declaration
Objective-C
- (void)toDelete;Swift
func toDelete() -
删除所有画笔
Declaration
Objective-C
- (void)deleteAllPaint;Swift
func deleteAllPaint() -
完成文本输入
Declaration
Objective-C
- (void)changeTextContent:(nonnull NSString *)content;Swift
func changeTextContent(_ content: String)
-
注册 ‘sendSocketEvent’ 方法 用于把 h5 接收到的操作画板产生的数据,通过 socket 发送给聊天室 用于开播场景时,开始推流才需要发送 h5 画板数据到聊天室 配合回调 ‘-jsbridge_sendSocketEventWithJson:’ 使用
Declaration
Objective-C
- (void)registerSocketEventFunction;Swift
func registerSocketEventFunction()
-
注册 ‘pptPrepare’ 方法 【回放时】用于PPT视图准备完毕时接收到通知 配合回调 ‘-jsbridge_PPTHadPrepare’ 使用
Declaration
Objective-C
- (void)registerPPTPrepareFunction;Swift
func registerPPTPrepareFunction() -
注册 ‘videoDuration’ 方法 用于PPT视图需要获取视频回放播放器当前播放时间点时接收到通知 配合回调 ‘-jsbridge_getCurrentPlaybackTime’ 使用
Declaration
Objective-C
- (void)registerVideoDurationFunction;Swift
func registerVideoDurationFunction() -
注册 ‘changePPTPosition’ 方法 用于讲师发起PPT位置切换时接收到通知 配合回调 ‘-jsbridge_changePPTPosition:’ 使用
Declaration
Objective-C
- (void)registerChangePPTPositionFunction;Swift
func registerChangePPTPositionFunction()
-
注册 ‘pptStatusChange’ 方法 用于文档翻页时接收到通知 配合回调 ‘-jsbridge_pageStatusChangeWithAutoId:pageNumber:totalPage:pptStep:’ 使用
Declaration
Objective-C
- (void)registerPPTStatusChangeFunction;Swift
func registerPPTStatusChangeFunction() -
注册 ‘toEditText’ 方法 用于 webView 上准备输入文字时调用 配合回调 ‘-jsbridge_documentInputWithText:textColor:’ 使用
Declaration
Objective-C
- (void)registerPPTInputFunction;Swift
func registerPPTInputFunction() -
注册 ‘whiteImages’ 方法 用于 webView 上白板预览图更新时调用 配合回调 ‘-jsbridge_updateWhiteboardImageData:pageNumber:’ 使用
Declaration
Objective-C
- (void)registerWhiteImagesFunction;Swift
func registerWhiteImagesFunction()
View on GitHub
PLVWebViewBridge Class Reference