PLVWebViewBridge
Objective-C
@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;
/// 白板、PPT内部翻页
/// @note 区别'changePPTWithAutoId:pageNumber:',不可用于白板与PPT之间的切换,或打开新的白板或PPT
/// @param type 翻页类型
- (void)changePPTPageWithType:(PLVChangePPTPageType)type;
#pragma mark 观看专用方法
/// 刷新PPT内容
/// @param jsonObject PPT内容
/// @param delay 延迟时间 (单位毫秒)
- (void)refreshPPTWithJsonObject:(NSDictionary *)jsonObject delay:(NSUInteger)delay;
/// 【观看回放时】设置本地ppt路径
/// @param path ppt路径
- (void)pptSetLocalPath:(NSString *)path;
- (void)pptLocalStartWithVideoId:(NSString *)videoId vid:(NSString *)vid;
/// 设置视频SEI信息
/// @param newTimeStamp 时间戳信息
- (void)setSEIData:(long)newTimeStamp;
/// 加载回放PPT
/// @param vid 回放视频的vid
- (void)pptStartWithVid:(NSString *)vid DEPRECATED_MSG_ATTRIBUTE("已废弃,请使用pptStartWithVideoId:roomId:");
/// 【观看回放时】加载回放PPT
/// @param videoId 回放视频的videoId(请求'直播回放视频的信息'接口返回的视频Id,与后台回放列表看到的vid不是同一个数据)
/// @param channelId 频道Id
- (void)pptStartWithVideoId:(NSString *)videoId channelId:(NSString *)channelId;
/// 【观看暂存时】加载暂存PPT
/// @param fileId 暂存视频的fileId
/// @param channelId 频道Id
- (void)pptStartWithFileId:(NSString *)fileId channelId:(NSString *)channelId;
#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:fileName:'
/// @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;
/// 重置 白板或PPT 缩放比例为 100%
- (void)resetWhiteboardPPTZoomRatio;
#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;
/// 注册 'pptStatusChange' 方法
/// @note 用于观看端文档翻页时接收到通知
/// 配合回调 '-jsbridge_pageStatusChangeWithAutoId:pageNumber:totalPage:pptStep:maxNextNumber:' 使用
- (void)registerWatchPPTStatusChangeFunction;
#pragma mark 推流专用方法
/// 注册 'pptStatusChange' 方法
/// 用于文档翻页时接收到通知
/// 配合回调 '-jsbridge_pageStatusChangeWithAutoId:pageNumber:totalPage:pptStep:' 使用
- (void)registerPPTStatusChangeFunction;
/// 注册 'toEditText' 方法
/// 用于 webView 上准备输入文字时调用
/// 配合回调 '-jsbridge_documentInputWithText:textColor:' 使用
- (void)registerPPTInputFunction;
/// 注册 'whiteImages' 方法
/// 用于 webView 上白板预览图更新时调用
/// 配合回调 '-jsbridge_updateWhiteboardImageData:pageNumber:' 使用
- (void)registerWhiteImagesFunction;
/// 注册 'pptThumbnail'方法(续播后,需要同步该ppt的缩略图和文件名称)
/// 用于 恢复上场直播后 同步ppt缩略图
/// 配合回调 '-jsbridge_documentChangeWithAutoId:imageUrls:fileName:' 使用
- (void)registerPPTThumbnailFunction;
/// 注册 'zoomChange' 方法
/// 用于 webView 上白板或PPT尺寸缩放更新时调用
/// 配合回调 '-jsbridge_updateWhiteboardPPTZoomRatio:' 使用
- (void)registerWhiteboardPPTZoomChangeFunction;
/// 注销 'pptThumbnail'方法
- (void)removePPTThumbnailFunction;
@end
Swift
class PLVWebViewBridge : NSObject
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内部翻页
Note
区别‘changePPTWithAutoId:pageNumber:',不可用于白板与PPT之间的切换,或打开新的白板或PPTDeclaration
Objective-C
- (void)changePPTPageWithType:(PLVChangePPTPageType)type;Swift
func changePPTPage(with type: PLVChangePPTPageType)Parameters
type翻页类型
-
刷新PPT内容
Declaration
Objective-C
- (void)refreshPPTWithJsonObject:(nonnull NSDictionary *)jsonObject delay:(NSUInteger)delay;Swift
func refreshPPT(withJsonObject jsonObject: [AnyHashable : Any], delay: UInt)Parameters
jsonObjectPPT内容
delay延迟时间 (单位毫秒)
-
【观看回放时】设置本地ppt路径
Declaration
Objective-C
- (void)pptSetLocalPath:(nonnull NSString *)path;Swift
func pptSetLocalPath(_ path: String)Parameters
pathppt路径
-
Undocumented
Declaration
Objective-C
- (void)pptLocalStartWithVideoId:(NSString *)videoId vid:(NSString *)vid;Swift
func pptLocalStart(withVideoId videoId: String, vid: String) -
设置视频SEI信息
Declaration
Objective-C
- (void)setSEIData:(long)newTimeStamp;Swift
func setSEIData(_ newTimeStamp: Int)Parameters
newTimeStamp时间戳信息
-
Deprecated
已废弃,请使用pptStartWithVideoId:roomId:
加载回放PPT
Declaration
Objective-C
- (void)pptStartWithVid:(nonnull NSString *)vid;Swift
func pptStart(withVid vid: String)Parameters
vid回放视频的vid
-
【观看回放时】加载回放PPT
Declaration
Objective-C
- (void)pptStartWithVideoId:(nonnull NSString *)videoId channelId:(nonnull NSString *)channelId;Swift
func pptStart(withVideoId videoId: String, channelId: String)Parameters
videoId回放视频的videoId(请求'直播回放视频的信息‘接口返回的视频Id,与后台回放列表看到的vid不是同一个数据)
channelId频道Id
-
【观看暂存时】加载暂存PPT
Declaration
Objective-C
- (void)pptStartWithFileId:(nonnull NSString *)fileId channelId:(nonnull NSString *)channelId;Swift
func pptStart(withFileId fileId: String, channelId: String)Parameters
fileId暂存视频的fileId
channelId频道Id
-
设置或取消画笔权限
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:fileName:’
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) -
重置 白板或PPT 缩放比例为 100%
Declaration
Objective-C
- (void)resetWhiteboardPPTZoomRatio;Swift
func resetWhiteboardPPTZoomRatio()
-
注册 ‘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’ 方法
Note
用于观看端文档翻页时接收到通知 配合回调 ‘-jsbridge_pageStatusChangeWithAutoId:pageNumber:totalPage:pptStep:maxNextNumber:’ 使用Declaration
Objective-C
- (void)registerWatchPPTStatusChangeFunction;Swift
func registerWatchPPTStatusChangeFunction()
-
注册 ‘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() -
注册 ‘pptThumbnail'方法(续播后,需要同步该ppt的缩略图和文件名称) 用于 恢复上场直播后 同步ppt缩略图 配合回调 ’-jsbridge_documentChangeWithAutoId:imageUrls:fileName:‘ 使用
Declaration
Objective-C
- (void)registerPPTThumbnailFunction;Swift
func registerPPTThumbnailFunction() -
注册 ‘zoomChange’ 方法 用于 webView 上白板或PPT尺寸缩放更新时调用 配合回调 ‘-jsbridge_updateWhiteboardPPTZoomRatio:’ 使用
Declaration
Objective-C
- (void)registerWhiteboardPPTZoomChangeFunction;Swift
func registerWhiteboardPPTZoomChangeFunction() -
注销 ‘pptThumbnail'方法
Declaration
Objective-C
- (void)removePPTThumbnailFunction;Swift
func removePPTThumbnailFunction()
View on GitHub
PLVWebViewBridge Class Reference