Remote control consent dialog
Learn how to customize the remote control consent prompt to your needs.
By default, Cobrowse will show a remote control consent dialog when an agent requests remote control. You may modify and customize the remote control consent prompt as you wish, using the SDK hooks described below.
Admin users may also disable this remote control consent prompt from your account settings if you prefer to remove it entirely: https://cobrowse.io/dashboard/settings
CobrowseIO.confirmRemoteControl = function() {
return new Promise(function(resolve, reject) {
// show your own UI here
// call resolve(true) to allow
// call reject() to reject
resolve(true)
});
};To override the the default remote control consent prompt, you should implement the cobrowseHandleRemoteControlRequest: method of CobrowseIODelegate.
-(void) cobrowseHandleRemoteControlRequest:(CBIOSession*) session {
// show your own UI here
// call [session setRemoteControl:kCBIORemoteControlStateOn callback:nil] to allow
// or [session setRemoteControl:kCBIORemoteControlStateRejected callback:nil] to reject
[session setRemoteControl:kCBIORemoteControlStateOn callback:nil]
}To override the the default remote control consent prompt, you should implement the CobrowseIO.RemoteControlRequestDelegate interface on your CobrowseIO.Delegate.
@Override
public void handleRemoteControlRequest(@NonNull Activity activity, @NonNull Session session) {
// show your own UI here
// call session.setRemoteControl(Session.RemoteControlState.On, null) to accept
// or session.setRemoteControl(Session.RemoteControlState.Rejected, null) to reject
session.setRemoteControl(Session.RemoteControlState.On, null)
}Example UIs
We've created a set of sample UIs that you may drop directly into your app or website as a starting point to customize the consent prompt.
// A generic consent dialog class
function Consent() {
var container = document.createElement('div');
function content(title, description){
return '\
<div style="background: rgba(50, 50, 50, 0.4); position: fixed; z-index: 2147483647; bottom: 0; top: 0; left: 0; right: 0">\
<div style="color: #333; font-family:sans-serif; line-height:140%; position:fixed; padding:25px; background:white; border-radius:15px; z-index:2147483647; top:50px; left:50%; width:75%; max-width:350px; transform:translateX(-50%); box-shadow:0px 0px 15px #33333322;">\
<div style="text-align:center; margin-top:10px; margin-bottom:20px"><b>'+title+'</b></div>\
<div>'+description+'</div>\
<div style="float:right; margin-top:40px; color:rgb(0, 122, 255);">\
<a class="cobrowse-deny" style="cursor:pointer; padding:10px;">Deny</a>\
<a class="cobrowse-allow" style="cursor:pointer; padding:10px; font-weight: bold;">Allow</a>\
</div>\
</div>\
</div>\
';
}
this.show = function(title, description) {
return new Promise(function(resolve) {
container.innerHTML = content(title, description);
container.querySelector('.cobrowse-allow').addEventListener('click', function(){ resolve(true); this.hide() }.bind(this));
container.querySelector('.cobrowse-deny').addEventListener('click', function(){ resolve(false); this.hide() }.bind(this));
if (document.body) document.body.appendChild(container);
}.bind(this));
}.bind(this);
this.hide = function() {
if (container.parentNode) {
container.parentNode.removeChild(container);
}
}.bind(this);
}
// Integration with Cobrowse
CobrowseIO.confirmRemoteControl = function() {
return new Consent().show('Remote Control Request', 'Do you want to allow remote control by ' + CobrowseIO.currentSession.agent().name + '?');
}And an example Fragment for showing the UI:
Last updated
Was this helpful?