Screen sharing VS Co-browse
These are two completely different functionalities. Let's see what separates them.
Screen sharing
Relies on webRTC to send a video feed of the shared window/screen to the other participants. Imagine it as a live screen recording. The screen is recorded and sent via webRTC to the other participants. You cannot however manipulate the remote screen like a remote desktop application. It is only a video feed of the remote screen.
Co-browse
Relies on HTML, JavaScript and Web Sockets to send a clone of the sender's HTML page to the other participants. The receiver of a co-browse session (typically an agent) sees and manipulates the same HTML as the customer does. If permissions are granted, an agent can also write on the page as if it were a normal web page. All the changes are sent back to the sender (customer).
This is how co-browse works in the auvious widget. In the mobile SDKs, co-browse sends a video of the app's screen instead, with sensitive views blacked out: the agent can see the app and draw on it, but cannot control it.
What's supported where
Co-browse and screen sharing work differently depending on where the customer is and how the session started:
- Customer in the widget: the customer is on your website, which has the auvious widget.
- Customer in the mobile SDK: the customer is in your native app, which uses the iOS or Android SDK.
- Standalone: there is no video call. The agent creates a PIN and the customer enters it, or (widget only) the agent sends an invitation over a web chat.
- In a video call: the agent asks for co-browse or screen sharing during an auvious video call.
Co-browse
| Widget, standalone | Widget, in a video call | Mobile SDK, standalone | Mobile SDK, in a video call | |
|---|---|---|---|---|
| Supported | ✅ | ✅ | ✅ (AuviousCobrowse) | ✅ when the app sets cobrowseAvailable |
| How it starts | The customer enters the agent's PIN in the widget, or the agent sends an invitation over web chat (Genesys Cloud, Talkdesk) | The agent requests it from the call | The app starts it with the agent's PIN | The agent requests it from the call |
| Customer consent | Entering the PIN is the consent; a chat invitation asks the customer to accept. Optional disclaimer (cobrowseDisclaimerUrl) | The customer accepts a request | A short explanation, then the iOS / Android screen recording prompt | A short explanation, then the iOS / Android screen recording prompt |
| What the agent sees | A live copy of the web page (HTML) | A live copy of the web page (HTML) | A video of the app's screen | A video of the app's screen. The call itself is hidden from the agent |
| Agent controls the page or app (click, type) | ✅ after the customer grants control | ✅ after the customer grants control | ❌ | ❌ |
| Agent's pointer shown to the customer | ✅ | ✅ | ❌ | ❌ |
| Agent draws (marker, arrow, eraser) | ✅ | ✅ | ✅ | ✅ |
| Customer draws back | ❌ | ❌ | ✅ | ✅ |
| Masking of sensitive content | CSS selectors with setCobrowseFilters (dark box, blurred or hidden). Password and file inputs are never sent | Same as standalone | AuviousMaskingRules and auviousMasked: masked views are blacked out in the video | Same as standalone |
| What is shared | Only pages that have the widget. Same-origin iframes are included; cross-origin iframes need an extra script | Same as standalone | Only this app. On Android 14+ the whole screen can be allowed with allowsEntireScreenShare (no masking outside the app) | Same as standalone |
| Navigation | Continues in single-page apps; reconnects after a reload or a full page load. More | Same as standalone | Continues across all screens of the app. Pauses while the app is in the background | Same as standalone. The call shrinks to picture-in-picture while sharing |
| Orientation | Any | Any | iOS: portrait only. Android: locked to the current orientation | Same as standalone |
| Switch to screen sharing | ✅ the customer can (cobrowse-display-capture), or the agent can request it | The agent can request it | ❌ | ❌ starting co-browse stops a screen share |
| Who can end it | Customer or agent | Agent. When the call ends, the customer is asked whether to stop co-browsing too | Customer (End button), the app (stop()) or agent | Customer, the app or agent. The call continues |
| Customer devices | Desktop and mobile browsers, web-view apps (Cordova, Ionic) | Desktop and mobile browsers | iOS 15+, Android 6.0+ | iOS 15+, Android 6.0+ |
Screen sharing
| Widget, standalone | Widget, in a video call | Mobile SDK, standalone | Mobile SDK, in a video call | |
|---|---|---|---|---|
| Supported | ✅ | ✅ | ❌ use standalone co-browse instead | ✅ (screenSharingAvailable on iOS, screenShareAvailability on Android) |
| How it starts | The customer enters a PIN for a screen share session, starts it from a co-browse session, or the agent requests it (co-browse or web chat) | The customer clicks share screen | — | The customer taps share screen. The agent cannot request it |
| Customer devices | Desktop browsers only. Mobile browsers cannot share their screen | Desktop browsers only | — | iOS 15+, Android 6.0+ |
| What can be shared | Entire screen, a window or a tab, as the browser offers. Safari shares only the entire screen | Same as standalone | — | iOS: only this app. Android 14+: only this app, unless allowsEntireScreenShare is set (other apps are never shared). Android 13 and below: the entire screen |
| Masking of sensitive content | ❌ | ❌ | — | ❌ masking applies only to co-browse |
| Agent AR pointer and drawing on the share | ❌ | ✅ | — | ✅ (arPointerAvailable), and the customer can draw back |
| While sharing | — | Not available while co-browse is active in the call | — | The call shrinks to picture-in-picture. Nothing is sent while the customer is outside the app, unless the entire screen is allowed on Android |
| Who can end it | Customer (button or the browser's stop control) or agent | Customer | — | Customer |