Whiteboard - iOS
A whiteboard is a digital canvas that allows users to collaborate in real-time by drawing, writing, and sharing ideas visually, making it ideal for brainstorming, presentations, and teamwork.
Before initiating a whiteboard session, it is essential to have an active VideoSDK Meeting in progress.
Starting the Whiteboard
To start the whiteboard during a meeting, invoke the startWhiteboard()
method of the meeting
class.
Upon successful execution, the onWhiteboardStarted
event will return a url
.
You can embed the url
into a WKWebView
to display the whiteboard session within your iOS app.
Stopping the Whiteboard
To stop the whiteboard session, call the stopWhiteboard()
method of the meeting
class. This will trigger the onWhiteboardStopped
event, halting the whiteboard for all participants.
Example
- Swift
class MeetingViewController: UIViewController {
let meeting;
let isWhiteboardStarted = false;
private var webView: WKWebView?
override func viewDidLoad() {
super.viewDidLoad()
//setup ui
//setup actions
setupWebView()
}
meeting = VideoSDK.initMeeting({
//... Initialization parameters
});
//setup webview
private func setupWebView() {
// Create WKWebView
webView = WKWebView(frame: .zero)
guard let webView = webView else { return }
webView.translatesAutoresizingMaskIntoConstraints = false
// Add WKWebView to the view hierarchy
view.addSubview(webView)
// Set up constraints
NSLayoutConstraint.activate([
webView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
webView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
webView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
webView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor)
])
// Initially hide the WebView
webView.isHidden = true
}
// show webview
func showWebView(with url: URL) {
guard let webView = webView else { return }
let request = URLRequest(url: url)
webView.load(request)
webView.isHidden = false
}
// hide webview
func hideWebView() {
webView?.isHidden = true
}
}
extension MeetingViewController {
// Start Whiteboard
@IBAction func toggleWhiteboardTapped(_ sender: Any) {
guard !isWhiteboardStarted else {
meeting.stopWhiteboard();
isWhiteboardStarted = false;
return;
}
meeting.startWhiteboard();
isWhiteboardStarted = true;
}
}
// Handle Whiteboard State Changed Event
extension MeetingViewController: MeetingEventListener {
func onWhiteboardStarted(url: URL) {
DispatchQueue.main.async {
self.showWebView(with: url)
}
}
func onWhiteboardStopped() {
DispatchQueue.main.async {
self.hideWebView()
}
}
}
Events Associated with startWhiteboard()
and stopWhiteboard()
-
onWhiteboardStarted
: Fired when the whiteboard is successfully started and it will return the url. -
onWhiteboardStopped
: Fired when the whiteboard session is stopped for all participants.
- Swift
extension MeetingViewController: MeetingEventListener {
func onWhiteboardStarted(url: URL) {
print("Whiteboard Started Successfully with url:", url)
}
func onWhiteboardStopped() {
print("Whiteboard Stopped Successfully")
}
}
API Reference
Got a Question? Ask us on discord