Remote control consent dialog
Learn how to customize the remote control consent prompt to your needs.
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)
});
};-(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]
}@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
// 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 + '?');
}Last updated