top

Application does not launch on Samsung platform

Published 2014-10-27 | (Compatible with SDK 3.5,4.5,5.0,5.1 and 2012,2013,2014 models)

Troubleshooting why the applications fail to open on SmartTV

This document describes possible causes and solutions why the application does not launch correctly on SmartTV platform. If SmartHub is stuck on the ‘Connecting...’ message or the application layout is visible only partially, please check if one of the following.

In case application does not launch on any platform

  1. Synchronise your device with SDK console and check if there are any JavaScript errors in the logs. In most cases when a JavaScript error is met, the further source code is not executed.

  2. If no errors in the console are visible, check your application source code whether it calls the widgetAPI.sendReadyEvent() function in the onload callback. The widget manager will not run the application until this function is called.

    Note

    Applications created using the Application Framework (using SDK Visual Editor) have the sendReadyEvent called by the framework core. Do not duplicate this call or it may cause some unexpected behavior.

  3. If your application uses the Application Framework, please make sure that you choose at least one language when packaging. The Application Framework requires the LANG variable to be defined, even if it does not contain any data inside.

In case application does not launch on 2010 or 2011 BlueRay only

Make sure that all the JavaScript and CSS files are included in index.html in proper letter case. Some of the 2010 and 2011 BD Players’ browsers are case-sensitive and will not load your files correctly if filenames do not match by letter case.

In case application does not launch on 2012 platform only

  1. If your application includes specific parts of the code based on the navigator.appName or navigator.userAgent, your code prepared for 2010 and 2011 platforms may not work properly on 2012. It happens because the 2012 devices have an entirely new browser engine based on Webkit instead of Maple as before. In order to make sure that all the needed sources are included, replace all occurrences of:

    if(navigator.appName == 'Maple') {
            ...
    }
    

    with

    if(navigator.appName == 'Maple' || navigator.appName == 'Netscape') {
            ...
    }
    

    or respectively, all occurrences of:

    if(navigator.userAgent.toLowerCase().indexOf("maple") !== -1 ) {
            ...
    }
    

    with

    if(navigator.userAgent.toLowerCase().indexOf("maple") !== -1 || navigator.userAgent.toLowerCase().indexOf("webkit") !== -1 ) {
            ...
    }
    
  2. If you use the IME module, make sure that the $MANAGER_WIDGET/Common/ime2.js script is included in index.html body. If you add this line in document head, it will be called before the body is fully loaded and as it refers to document.body in the source code, it will generate an error on 2012 platform.

  3. If you use some native plugin functions, do not set for them style display: none. The 2012 platform Webkit browser manages memory differently than previous platforms, so if the style is set to display: none, the plugin objects are not loaded into memory at all. In order to hide the objects, please use visibility: hidden instead.