Discussions
widget framework methods not working...
9 months ago by Nick Foad
when i call api2.getInteractionCapabilities() it returns undefined
when i call api2.getInteractionServices() it returns an object that looks like this:
these issues are reported by a customer and reproduced by me on NA Demo 02. in both cases, we are calling api2.onDataEvent('onAnyInteractionEvent', callback); in connectedCallback(), and calling the getInteractionxxx methods from there.
is this the correct behavior for these methods (and the documentation is wrong)? or, is there a bug? or, are we doing it wrong? in which case, how are these supposed to be used?
Code is below:
connectedCallback() {
// Create UWF Notification API instance.
console.log("Connected Callback called");
const interactionId = this.getAttribute('interactionid');
console.log(interactionId);
api2 = window.WS.widgetAPI();
console.log(api2);
api2.onDataEvent('onAnyInteractionEvent', callbackagain);
shadowRoot.querySelector( "#lookUpCust").addEventListener( "click", () => searchForCJ());
shadowRoot.querySelector( "#callCustomer").addEventListener( "click", () => callOut());
shadowRoot.querySelector( "#callCustomer").style.visibility = "hidden";
function callbackagain(data) {
if( data.length == 0) {
if( interactionState == "INACTIVE") {
return console.log( "interactionEvent: no data already INACTIVE");
}
interactionState = "INACTIVE";
console.log( "interactionEvent: callback with no data");
shadowRoot.querySelector( "#contentArea").innerHTML = getTemplate();
shadowRoot.querySelector( "#lookUpCust").addEventListener( "click", () => searchForCJ());
shadowRoot.querySelector( "#callCustomer").addEventListener( "click", () => callOut());
shadowRoot.querySelector( "#callCustomer").style.visibility = "hidden";
return;
}
if( data[0].state == interactionState) {
console.log( "interactionEvent: duplicate event for state " + interactionState);
return;
}
interactionState = data[0].state;
console.log( "interactionEvent: " + data[0].state + " Channel: " + data[0].channel);
console.log( api2.getInteractionCapabilities());
console.log( api2.getInteractionServices());