Managing full device mode
Learn how to promote a session to full device mode using the SDK, as per your requirements.
Managing full device state from the SDKs
In some situations it is useful to be able to switch a Cobrowse session into full device mode using the SDK. For example, if you would like sessions to default to full device mode, or enforce full device mode is always (or never) used. We provide an API for doing this:
await session.setFullDevice('requested')Swift
session.setFullDevice(.requested)Objective-C
[session setFullDevice: CBIOFullDeviceStateRequested callback:nil];session.setFullDevice(Session.FullDeviceState.Requested, (err, arg) -> {
// handle error
});await session.setFullDevice(true)Session? session = await CobrowseIO.instance.currentSession();
if (session != null) {
try {
await session.setFullDevice(FullDeviceState.on);
} on PlatformException catch (e) {
// E.g. a network error
log('Cannot update the full device state: ${e.message}');
}
}Session session = CobrowseIO.Instance.CurrentSession;
if (session != null)
{
session.SetFullDevice(FullDeviceState.On, (err, session) =>
{
if (err != null)
{
// E.g. a network error
}
else
{
// Full device mode is activated
}
});
}See this in action: https://github.com/cobrowseio/cobrowse-sdk-js-examples#full-device-mode-by-default.
These APIs can be used in combination with our various delegate APIs to switch the session in and out of full device mode as your use case requires.
For example, to request full device is used by default, you can set the full device state when the session is first loaded by the SDK:
CobrowseIO.on('session.loaded', session => session.setFullDevice('requested')) Swift
// You must have implmented the CobrowseIODelegate
func cobrowseSessionDidLoad(_ session: CBIOSession) {
session.setFullDevice(.requested)
}Objective-C
// You must have implmented the CobrowseIODelegate
- (void)cobrowseSessionDidLoad:(CBIOSession *)session {
[session setFullDevice: CBIOFullDeviceStateRequested callback:nil];
}// note: you must have implmented CobrowseIO.SessionLoadDelegate
@Override
public void sessionDidLoad(@NonNull Session session) {
session.setFullDevice(Session.FullDeviceState.Requested, null);
}CobrowseIO.addListener('session.loaded', session => {
console.log('A session was loaded', session)
await session.setFullDevice(true)
})CobrowseIO.instance.sessionDidLoad.listen((session) {
try {
await session.setFullDevice(FullDeviceState.on);
} on PlatformException catch (e) {
// E.g. a network error
log('Cannot update the full device state: ${e.message}');
}
});CobrowseIO.Instance.SessionDidLoad += (sender, session) =>
{
session.SetFullDevice(FullDeviceState.On, (err, session) =>
{
if (err != null)
{
// E.g. a network error
}
else
{
// Full device mode is activated
}
});
};Controlling full device state from the Agent SDK
You may also set the full device state using the Agent SDK. See the Agent SDK API Reference for more details.
Last updated
Was this helpful?