Search code examples
crossrider

Crossrider API not ready to receive events?


I'm trying to trigger an event on my crossrider extension. Using the code below the event never gets to the extension. If I put a timeout and wait 5 seconds it does. So is there a way to detect when the extension\api is ready to receive events?

 $(document).ready(function () {

    var x = 'xxxxx';

   $('body').fireExtensionEvent('eventName', { key: 'token-' + x });

});

Solution

  • You can use CrossriderAPI.isAppInstalled.

    <script type="text/javascript" src="https://w9u6a2p6.ssl.hwcdn.net/plugins/javascripts/crossriderAPI.js"></script>
    <script type="text/javascript">
        // Replace XXXXX with the extension id
        var extId = "XXXXX";
    
        // Once the page is ready
        $(function() {
            CrossriderAPI.isAppInstalled(extId, function(isInstalled) {
                // Displays true if the extension is installed; otherwise false
                var x = 'xxxxx';
                $('body').fireExtensionEvent('eventName', { key: 'token-' + x });
            });
        });
    </script>
    

    [Disclosure: I am a Crossrider employee]