Known Issues for Hybrid Web Container for Windows Mobile

Learn about known issues and apply workarounds for Hybrid Web Container (HWC) development for Windows Mobile.

Issue #Description
RTC-300
On Windows Mobile, calling a save or submit action to a persisted cached password causes the Hybrid Web Container to crash if the Hybrid Web Container was not registered to Unwired Server.

Workaround: Register the Windows Mobile device to Unwired Server before saving credential information to the device.

RTC-236
When a 2.1.3 or older client tries to connect to a 2.2 or newer server using an invalid URL suffix (such as '/'), the client receives an HTTP authentication challenge and the connection fails.

Workaround: Use a valid URL suffix when attempting to connect a 2.1.3 or older client to a 2.2 or newer server.

RTC-222
After loading Hybrid Web Container JavaScript files (for example, datajs), a memory leak occurs.

Within a closure code, when adding a new window property that references an object, the object is not correctly identified as garbage collection (GC) after closing the Hybrid App.

For example, the datajs-1.0.3.js file contains a code pattern:
(function (window, undefined) { 
if (!window.OData) { 
window.OData = {}; 
} 

var odata = window.OData; 

odata.defaultHttpClient = { 
request: function () { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } 
}; 
})(this);

When exiting the Hybrid App, window.OData still occupies the memory. After the Hybrid App is opened and closed several times, an "Out of Memory" error occurs.

Workaround: Manually release the object. For example, add "window.OData = null;" in the hwc.close() function that is invoked when exiting the Hybrid App. Add these lines in hwc.close() to avoid the memory leak:
//datajs
if (window.datajs) { window.ActiveXObject = window.oldActiveXObject; window.datajs = null; window.OData = null; window.oldActiveXObject = null; }
//hwc
window.CallbackSet = null;
window._Picture = null;
//cordova
window.console = null;
window.PhoneGap = null;
window.Cordova = null;
window.plugins = null;
window.addEventListener = null;
window.removeEventListener = null;

On Windows Mobile, if you experience a memory leak under these conditions, restart the device.

RTC-220
In a page of the Hybrid App, the Save or Submit Hybrid App action fails to save the credential information to the local store by providing only the "credential cached user name" without a corresponding "credential cached password."

Workaround: Use the hwc.saveLoginCredentials() JavaScript API to save the user name.

RTC-197
On Windows Mobile, when changing between landscape and portrait orientation, the spinner disappears.

Workaround: None.

RTC-171
If a password is used for automatic device registration using the hwc.saveSettings() API, the password is used only once and is not saved in the Hybrid Web Container.

Upon successful automatic registration, subsequent connections to the server uses the userid+deviceid+authcode combination (the password is not required). This is by design.

Workaround: To save the password in the application, do so in the application code with the secured storage SUPStorage API.

RTC-156
On Windows Mobile 6.0, if you use the task manager to end the Hybrid Web Container process, you cannot restart the Hybrid Web Container.

Workaround: Do not end the Hybrid Web Container process on Windows Mobile 6.0. It works as expected on Windows Mobile 6.5.

RTC-147
On Windows Mobile, when using the Media Cache function, hwc.MediaCache.getUrl(), a large media resource, such as an image, may not appear correctly if the user opens and closes the Hybrid App frequently.

Workaround: None.

RTC-115
Cannot update prepackaged Hybrid Apps.

The version number of the new Hybrid App must be later than the current version number.

Workaround: Edit the manifest.xml file to update the version number and repackage the Hybrid App files.

RTC-93
On Windows Mobile, the removeMenuItem() JavaScript API in API.js does not work.

Workaround: None.

RTC-90
On all Hybrid Web Container device platforms, when an expired certificate is used for device registration, the error message is MMS Authentication Failed, which does not indicate the root cause of the error. 

Workaround: Make sure your certificate is not expired.

RTC-88
After changing the default Hybrid App in SAP Control Center, invoking the Hybrid Web Container on Windows Mobile devices does not automatically open the new default Hybrid App.

Workaround: After changing the default Hybrid App in SAP Control Center, restart the device.

RTC-73
On all platforms, in manual registration mode, after calling the hwc.saveSettings API in hwc-api.js, the client cannot connect to the server.

Workaround: To connect to the server by manual registration, call the hwc.startClient API after the hwc.saveSettings invocation.

RTC-52
A Hybrid App fails to deploy to the device.

If the SAP Mobile Platform is installed in a cluster, and different paths are used on each application service node, the Hybrid App log may contain a message similar to Updated failed for Hybrid App item. SAP Mobile Platform currently assumes that application service nodes are installed in the same path on all the nodes in the cluster, that is, that all application server nodes are installed in the same path on all cluster nodes. It stores full paths in the database during Hybrid App package installation. When the client connects, it looks for those paths in the file system. If the node it is connecting to does not have one of those paths, you see the error.

Workaround: Install SAP Mobile Platform using the same installation path for each node of the cluster.

RTC-49
On Windows Mobile devices and emulators, Cordova cannot play audio files.

Workaround: None.

CR-708173
When the Hybrid Web Container tries to retrieve data from the MBO package, an Invalid application id <***> for package error appears.
Workaround: In SAP Control Center, manually add an application ID for the MBO package's application list.
  1. Log in to SAP Control Center.
  2. Go to hostname@localhost > Applications and click the Applications tab.
  3. Click Properties.
  4. In Domains and Packages, select the domain that contains the applicable MBO package.
  5. Assign the application ID to the MBO's package's applications list.
CR-708122
Native application on Windows Mobile device receives an error, Can't find an Entry Point 'DLL_setMclCallbacks' in a PInvoke DLL 'CMessagingCLient.dll.

This can occur if a 2.1.2 (or older) version of the Hybrid Web Container (HWC) is installed on the same device as a native application using the Sybase Unwired Platform 2.1.3 libraries. The HWC and native applications share a common CMessagingCLient.dll.

Workaround: In order for a 2.1.2 (or older) HWC and a 2.1.3 native app to coexist and both successfully run on the same Windows Mobile device, install only the 2.1.3 version of CMessagingCLient.dll, and load it into memory on the device. Before starting either version of the application, verify that older versions of that DLL are removed from the device.

CR-705895
After adding JavaScript code in the customAfterMenuItemClick method to update the check box (using JQuery Mobile) state on the screen, the checkbox fails to update.

Workaround: When you use JavaScript to update the check box (using JQueryMobile) value, you must also add the refresh code. For example:

Whole sample in "customAfterMenuItemClick" method of Custom.js

function customAfterMenuItemClick(screen, menuItem) {
    if (screen === "Start" && menuItem === "setCheckbox") {
		var checkbox1 = document.getElementById('checkbox1');  
		checkbox1.checked = true;
		
		var checkbox2 = document.getElementById('checkbox2');
		checkbox2.checked = false;
		
		if (isJQueryMobileLookAndFeel) {
		    $("input[type='checkbox']").checkboxradio("refresh");
		}
    }
}
CR-693381
Cannot preview a selected picture On Windows Mobile emulator.

When using the imageElement.src = imageUri in the getPicture function, you cannot preview the selected image on the Windows Mobile emulator. This is because the HTML browser adds an unexpected prefix to the URI, so the Hybrid Web Container cannot find the file to which the URI refers.

Workaround:
  • Preview the image using an actual device instead of the emulator, or,
  • Assign image data instead of an image URI to the image element so the image data can be retrieved through the JavaScript API.
CR-688399
On Windows Mobile devices, thumbnails do not show properly if an image has a large size..

The root cause is that Internet Explorer cannot load a large image; try one of these solutions to address the image size:

Workaround #1: Specify a small-sized image as the thumbnail instead of using the original large image, for example:
<img src="default-thumbnail.jpg" width="120" height="120" 
id="Thumbnail" sup_static_options="true" name="Preview" alt="Preview"/>
Workaround #2: Pass the width and height as the parameters in the source of the image control, so the container compresses the original image on the fly, for example:
<img src="default.jpg?width=120&height=120" width="120" height="120" 
id="Thumbnail" sup_static_options="true" name="Preview" alt="Preview"/>

The width and height parameters are supported only on Windows Mobile and may cause display issues on other platforms.

CR-686465
Camera feature is supported on some device simulators/emulators.

Workaround: Use a physical device.

CR-680253
Images do not appear correctly on mobile devices.

Hybrid Web Container/Workflow applications can display pictures from binary enterprise information system (EIS) data. But when a MBO developer drags and drops a table that contains an image field to create the MBO, the image field maps to a Binary datatype that has a length of approximately 3KB, which may not be large enough for the entire image. At runtime, the binary data of the image may be truncated in the cache database (CDB), and appear incorrectly on the device.

Workaround: When creating the MBO, manually modify the length of the binary field to make sure it is large enough to hold the image binary data, or use the BigBinary datatype instead.