The Browser widget is associated with the following methods:
This API allows you to set a gesture recognizer for a specified gesture for a specified widget.
Syntax
addGestureRecognizer(gestureType, gestureConfigParams, onGestureClosure)
Parameters
gestureType
[Number] - Mandatory
Indicates the type of gesture to be detected on the widget.
See Remarks for possible values.
gestureConfigParams
[object] - Mandatory
The parameter specifies a table that has the required configuration parameters to setup a gesture recognizer.
The configuration parameters vary based on the type of the gesture.
See Remarks for possible values.
onGestureClosure
[function] - Mandatory
Specifies the function that needs to be executed when a gesture is recognized.
This function will be raised asynchronously
See Remarks for the syntax of this function.
Return Values
String - Reference to the gesture is returned.
Remarks
The values for the gestureTypeparameter are:
[Number] - Mandatory
Indicates the type of gesture to be detected on the widget. The following are possible values:
The values for the gestureConfigParamsparameter are:
[object] - Mandatory
The parameter specifies a table that has the required configuration parameters to setup a gesture recognizer. The configuration parameters vary based on the type of the gesture.
This parameter supports the following key-value pairs:
Gesture Type:TAP
For example:
{fingers:1,taps:1}
Gesture Type:SWIPE
For example:
{fingers: 1}
Gesture Type:LONGPRESS
For example:
{pressDuration=1}.
Gesture Type: PAN
Gesture Type: ROTATION
Gesture Type:PINCH
The syntax for the onGestureClosurecallback function are:
[function] - Mandatory
Specifies the function that needs to be executed when a gesture is recognized.
This function will be raised asynchronously and has the following Syntax:
onGestureClosure(widgetRef, gestureInfo, context)
gestureInfo table has the following key-value pairs:
context table has the following key-value pairs:
It is not recommend to define gestures for widgets that have a default behavior associated with it.
If you click (tap) a button (any clickable widget), the default behavior is to trigger an onClick event. If you define a Tap gesture on such widgets, the gesture closure is executed in addition to the onClick event.
If you swipe a larger form, the default behavior is to scroll up and down depending on the direction in which you swipe. If you define a SWIPE gesture on such forms, the gesture closure gets executed in addition to scrolling the form.
If you swipe a Segmented UI with huge number of rows, the default behavior is to scroll the Segmented UI. If you define a SWIPE gesture on such segments, the gesture closure gets executed in addition to scrolling the form.
Gestures can be added only for the following widgets:
Flex Container
Flex Scroll Container.
In the android platform, the top and bottom gestures work only when the scrolling is disabled for Form and parent scrolling containers. By default, the scrolling is enabled for the Form and scrolling containers.
Example
//Sample code to add Gestures to the frmGestures FlexForm. //Code to add DOUBLE TAP gesture to the frmGestures, FlexForm. var doubletp = { fingers: 1, taps: 2 }; frmGestures.addGestureRecognizer(1, doubletp, onGestureFunction); //Code to add SINGLE TAP gesture to the frmGestures FlexForm. var singleTp = { fingers: 1, taps: 1 }; frmGestures.addGestureRecognizer(1, singleTp, onGestureFunction); //Code to add SWIPE gesture to the frmGestures FlexForm. var swipeForm = { fingers: 1, swipedistance: 50, swipevelocity: 75 }; frmGestures.addGestureRecognizer(2, swipeForm, onGestureFunction); //Code to add LONGPRESS gesture to the frmGestures FlexForm. var longPressForm = { pressDuration: 2 }; frmGestures.addGestureRecognizer(3, longPressForm, onGestureFunction); function onGestureFunction(commonWidget, gestureInfo) { kony.print("The Gesture type is:" + gestureInfo.gestureType); }
Platform Availability
Applies an animation to the widget.
Syntax
animate (animationObj, animateConfig, animationCallbacks)
Parameters
animationObj
An animation
object created using kony.ui.createAnimation function.
animationConfig
As defined in widget level animation section.
animationCallbacks
A JavaScript dictionary that contains key-value pairs. The following keys are supported.
Key | Description |
---|---|
animationEnd | A JavaScript function that is invoked with the animation ends. For more information, see the Remarks section below. |
animationStart | A JavaScript function that is invoked with the animation starts. For more information, see the Remarks section below. |
Return Values
Returns a platform-specific handle to the animation. This handle currently not used, but is returned for possible future requirements use.
Remarks
The callback for the animationStart
key in the JavaScript object passed in this method's animationCallbacks parameter has the following signature.
animationStart(source, animationHandle, elapsedTime);
where source
is the widget being animated, animationHandle
is the handle returned by the applyAnimation
method, and elapsedTime
is the amount of time the animation has been running in seconds, when this event is fired..
This event occurs at the start of the animation. If there is 'animation-delay' configured then this event will fire only after the delay period. This event gets called asynchronously.
The callback for the animationEnd
key in the JavaScript object passed in this method's animationCallbacks parameter has the following signature.
animationEnd(source, animationHandle, elapsedTime);
where source is the widget being animated, animationHandle is the handle returned by the applyAnimation method, and elapsedTime is the amount of time the animation has been running in seconds, when this event is fired.
This event occurs at the end of the animation. This event gets called asynchronously.
The animate
method throws an Invalid Animation Definition Exception if animation definition, does not follow the dictionary structure expected. This method is ignored if it is called on a widget whose immediate parent is not FlexContainer or a FlexScrollContainer.
If the widget is not part of the currently visible view hierarchy, calling this method does nothing. Because this method is asynchronous and immediately returns, it does not wait for the animation to start or complete.
Example
//Sample code of animation function AnimateBoth() { var getFuncName = frm1.listbox18.selectedKey; if (getFuncName == "BothLT") { frm1.textbox26.animate(myAnimDefinition(), animConfiguration(), {}); } else if (getFuncName == "BothTBL") { frm1.textbox26.animate(myAnimDefinitionsc1(), animConfiguration(), {}); } }
Platform Availability
This method specifies whether the browser can navigate back into history.
Syntax
canGoBack()
Return Values
status
True - if the browser cache is not empty.
False - if the browser cache is empty.
Remarks
If the browser cache is empty then this method returns false and the goBack method has no effect.
Example
//Sample code to invoke canGoBack method for a Browser widget. var canGoBck = frmBrowser.myBrowser.canGoBack(); alert("canGoBack?::" + canGoBck);
Platform Availability
Available on all platforms except SPA.
This method specifies whether the browser can navigate forward into history.
Syntax
canGoForward()
Return Values
status
True - if the browser cache is not empty.
False - if the browser cache is empty.
Remarks
If the browser cache is empty then this method returns false and goForward method has no effect.
Example
//Sample code to invoke canGoForward method for a Browser widget. var canGoFwd = frmBrowser.myBrowser.canGoForward(); alert("canGoForward?::" + canGoFwd);
Platform Availability
Available on all platforms except SPA.
In the iOS platform, when the Browser widget uses WKWebView engine to load data, a separate cookie storage area (called WKHTTPCookieStore) is created. This storage area is not connected to the parent app.
To sync the cookies in the WKHTTPCookieStore with the parent app, you must use the getCookies, setCookies and clearCookies methods of the Browser widget.
The clearCookies method is an asynchronous method that helps you to delete the cookies from the cookie storage area of the parent app.
Syntax
clearCookies(deleteCookieCallback,cookiesToDelete)
Input Parameters
cookiesToDelete
: This parameter is used to input the name of the cookies that is to be deleted from the cookie storage of the parent app. This means that you must provide the key, Name to identify the cookies to be deleted from the storage.
deleteCookieCallback
: This parameter registers the function that is invoked when the cookie is deleted from the cookie storage of the parent app. This callback is invoked for each cookie that is deleted. This function has the following two arguments.
wdg
: This argument has the handle of with the Browser widget instance that invokes the clearCookies method.cookieObject
: This argument has the cookie object that is deleted using the clearCookies method.Here is an example of the cookie object.
{ "Name": "appName", "Value": "App01", "Domain": "app.example.com" }
Example
//Sample code to invoke the clearCookies method for a Browser widget. var listOfCookies = [{ "Name": "appName" }, { "Name": "ap" }]; frmBrowser.myBrowser.clearCookies(clearCookiesCallback, listOfCookies); function clearCookiesCallback(wdg, cookieObject) { kony.print(wdg, cookieObject); }
Platform Availability
This method clears the page history of the specified Browser.
Syntax
clearHistory()
Example
//Sample code to invoke clearHistory method for a Browser widget. frmBrowser.myBrowser.clearHistory ();
Platform Availability
Available on all platforms except SPA and iPhone
When this method is used on a container widget, then all the widgets inside the container are cloned. This method takes an optional parameter. If the widgetid is not passed then the cloned copy will have the same ID as original widget.
If the widget ID is passed as a parameter then it will be prefixed to the existing ID and will assign it to cloned copy of the container. For all other widgets of the container and its child widgets.
For example, if the widget ID is "fc1" and the widget ID passed to clone API is "ref1", then the cloned widget ID will be "ref1fc1". For a child widget placed in a container with widget ID as "wid1", the cloned copy will have the widget ID as "ref1wid1".
Exceptions are not displayed if widget ID parameter is not unique. Instead when the cloned copy is added to the same form as of original container then it may lead to unexpected behaviors. So it is your responsibility to provide unique widget ID.
Syntax
clone()
Parameters
widgetId [String]
Optional. Reference of the name of the widget.
Return Values
Cloned copy of the widget.
Exceptions
None
Remarks
formid.widgetid.focusSkin = "skinname";
formid.widgetid.hoverSkin = "skinname";
Example
//This is a generic method that is applicable for various widgets. //Here, we have shown how to use the clone Method for a FlexContainer widget. //You need to make a corresponding call of the clone method for other applicable widgets.
var flex2 = frmFlex.flexContainer1.clone(); //Here, flexContainer1 is a FlexContainer widget that is already present in frmFlex FlexForm. frmFlex.add(flex2); //For instance, the corresponding clone method call on the Label widget is as follows: var myLabel=frmFlex.lbl1.clone();
Platform Availability
This method allows you to convert the coordinate system from a widget to a point (receiver's coordinate system).
Syntax
convertPointFromWidget(point, fromWidget)
Parameters
point
[JSObject]- Mandatory
You can specify an object with keys as x and y. You can specify the values in all (dp, px and %) units of measurement.
fromWidget
[widgetref]- Mandatory
This parameter is the handle to the widget instance. Based on this parameter, the coordinate system is converted from the widget to a point (receiver's coordinate system).
Example
Form1.widget1.convertPointFromWidget({ x: "10dp", y: "20dp" }, widget2);
Platform Availability
Using the convertPointToWidget method, you can modify the co-ordinate system. You can convert the receiver's co-ordinate system from a point to a Widget.
Syntax
convertPointToWidget(point, toWidget)
Parameters
point
[JSObject]- Mandatory. You can specify an object with keys as x and y. You can specify the values in all (dp, px and %) units of measurement.
toWidget
[widgetref] - Mandatory. This parameter is the handle to the widget instance. Based on this parameter, the coordinate system is converted from a point to a widget.
Example
Form1.widget2.convertPointToWidget({ x: "20dp", y: "30dp" }, widget1);
Platform Availability
This method accepts a JavaScript snippet in the form of a string.
Syntax
evaluateJavaScript(snippet)
Parameters
snippet
The contents of the JavaScript code.
Return Values
Returns the output or generates KonyError.
Following are platform-specific return values in various scenarios:
Scenario | Android | iOS | Windows | SPA |
---|---|---|---|---|
If there is any error in evaluating the JavaScript | Null | Null | KonyError | KonyError |
If return is used (outside any defined function) | Null | Null | KonyError | KonyError |
If return type is string | Works fine | Works fine | Works fine | Null |
If return type is non-string | Works fine | Works fine | Null | Null |
Remarks
This method evaluates the snippet and returns the result as a string.
This method returns null in case the result of the evaluation string is empty. When multiple functions are called in the JavaScript snippet, the returns of this method are based on the native platform behavior.
Following are the platform limitations:
SPA
Windows
//Example1 throws error and returns null. webWidget1.evaluateJavaScript ("return document.title"); //Example2 returns the document.title of the web page loaded. webWidget1.evaluateJavaScript ("document.title"); //Example3 If the script loaded in the webWidget1 is a var a = "100"; then calling- webWidget1.evaluateJavaScript ("a"); //It returns "100" webWidget1.evaluateJavaScript ("return a"); //throws error and returns null.
iOS
//Example1 returns null. webWidget1.evaluateJavaScript("return document.title"); //Example2 returns the document.title of the web page loaded. webWidget1.evaluateJavaScript("document.title"); //Example3 If the script loaded in the webWidget1 is a var a = "100"; then calling: webWidget1.evaluateJavaScript("a"); //It returns "100" webWidget1.evaluateJavaScript("return a"); //returns null.
Android
evaluateJavaScript
API implementation internally relies on native Android WebView's method, addJavascriptInterface
, on devices with API level less than 19 (that is, Android version earlier than 4.4). As there is security risk using the addjavascriptInterface
API, by default, the evaluateJavaScript
method is disabled under following conditions, where the usage of this API is vulnerable.For more information on security risk associated in using the addJavascriptInterface
method, refer http://developer.Android.com/reference/Android/webkit/WebView.html#addJavascriptinterface(java.land.Object,java.land.String)
InOrder to explicitly enable the evaluateJavaScript
method in all cases, set the enableJsInterface
writable JS property on the Browser Widget to true.
Note: It is Kony application developer's responsibility to judiciously use the evaluateJavaScript API along with enableJsInterface flag.
For more information on security risk associated in using the addJavascriptInterface method, refer http://developer.Android.com/reference/Android/webkit/WebView.html#addJavascriptinterface(java.land.Object,java.land.String)
InOrder to explicitly enable the evaluateJavaScript method in all cases, set the enableJsInterface writable JS property on the Browser Widget to true.
It is Kony application developer's responsibility to judiciously use the evaluateJavaScript API along with enableJsInterface flag.
//Example1 webWidget1.enableJsInterface = true;
If you are creating the widget dynamically, you should set this property immediately after the constructor.
//Example2 var webWidget1 = new kony.ui.Browser(); webWidget1.enableJsInterface = true;
var result = webWidget1.evaluateJavaScript("function() {try {//Write your JS code here} catch (err) {return 'ERROR';}}"); if (result == "ERROR") { kony.print("Unknown Error"); } else { kony.print("Result:" + result); }
//Example1 returns null. webWidget1.evaluateJavaScript("return document.title"); //Example2 returns the document.title of the web page loaded. webWidget1.evaluateJavaScript("document.title"); //Example3 If the script loaded in the webWidget1 is a var a = "100"; then calling- webWidget1.evaluateJavaScript("a"); //It returns "100" webWidget1.evaluateJavaScript("return a"); //returns null.
//Example1 returns null. webWidget1.evaluateJavaScript("return document.title"); //Example2 returns the document.title of the web page loaded. webWidget1.evaluateJavaScript("document.title"); //Example3 If the script loaded in the webWidget1 is a var a = "100"; then calling- webWidget1.evaluateJavaScript("a"); //It returns "100" webWidget1.evaluateJavaScript("return a"); //returns null.
Example
//Example1 var result = webWidget1.evaluateJavaScript("JSON.stringify(eval(2+3))"); kony.print("Result:" + result); //Example2 var functionString = "function f(){var a = 5; a += 10;}"; var result = webWidget1.evaluateJavaScript(functionString); kony.print("Result: " + result); //Example3 var functionString = "function f(){var a = 5; a += 10;}"; try { var result = webWidget1.evaluateJavaScript(functionString); kony.print(" Result: " + result + " ; "); } catch (e) { kony.print("Error code: " + e.errorCode + "Message: " + e.message); } //output of example 3 Error code:106 Message: Unknown Error<<
Platform Availability
Available on iOS, Android, Windows, SPA platforms.
This method accepts a JavaScript snippet and a callback function as inputs.
Syntax
evaluateJavaScriptAsync(snippet,callback)
Parameters
snippet
The contents of the JavaScript code.
callback
function (result, konyError ){
};
The contents of the konyError are:
- errorCode
- name
- message
Return Values
Returns the output or generates KonyError.
Remarks
This method evaluates the snippet and invokes the callback with the result.
On Android platform, this method accepts a JavaScript snippet in the form of string, and a callback function as inputs and evaluates the snippet and calls the callback with the result and error as null.
Following are the platform limitations:
Windows
//Example1 throws error and returns null and populate the error object with the appropriate //Kony Error (106, "Unknown Error"). webWidget1.evaluateJavaScriptAsync("return document.title"); //Example2 returns the document.title of the web page loaded. webWidget1.evaluateJavaScriptAsync("document.title"); //Example3 If the script loaded in the webWidget1 is a var a = "100"; then calling- webWidget1.evaluateJavaScriptAsync("a"); //It returns "100" webWidget1.evaluateJavaScriptAsync("return a"); //throws error and returns null.
iOS
Android
Example
//Example1 webWidget1.evaluateJavaScriptAsync("eval(2+3)", function(result, error) { kony.print("Result:" + result); });
Platform Availability
Available on iOS, Android, and Windows platforms
Retrieves a list of the HTML files of the specified type.
Syntax
getHTMLFilesInWebFolder(RESTYPE)
Parameters
RESTYPE
The resource type of the files to be returned.
Return Values
Returns a list of files that match the resource type specified in the RESTYPE parameter.
This API enables you to read the badge value (if any) attached to the specified widget. If the specified widget does not have a badge attached to it, it returns an empty string.
Syntax
getBadge()
Optional Parameter
uniqueIdentifier
Unique identifier of a widget which is a handle to the widget.
Return Values
Returns a string containing the badge value applied to the specified widget. If the specified widget has no badge value attached to it, it returns an empty string.
Remarks
When a badge is removed, the widgets are re-formatted to accommodate the cleared badge values.
On the iOS platform, this method is applicable on Box, Label, Button, Image, TextBox, and TextArea widgets only.
For Android platform, this method is applicable for Button and Image widgets in Box forms only.
Example
//This is a generic method that is applicable for various widgets. //Here, we have shown how to use the getBadge Method for button widget. //You need to make a corresponding call of the getBadge method for other applicable widgets. function getBadge() { //To get a badge value on a Button with ID btn1 placed on a form frm1, use the following snippet: var badgeVal = frm1.btn1.getBadge(); alert("badge value is::" + badgeVal); //For instance, the corresponding getBadge method call on the Label widget is as follows: frm1.lbl1.getBadge(); }
Platform Availability
In the iOS platform, when the Browser widget uses WKWebView engine to load data, a separate cookie storage area (called WKHTTPCookieStore) is created. This storage area is not connected to the parent app.
To sync the cookies in the WKHTTPCookieStore with the parent app, you must use the getCookies, setCookies and clearCookies methods of the Browser widget.
The getCookies method is an asynchronous method that helps you to retrieve the cookies from the WKHTTPCookieStore to the parent app. The cookies will be available as an argument in the callback.
Syntax
getCookies(callback)
Input Parameters
callback
: This parameter registers the function that is invoked when the cookie is being retrieved from the WKHTTPCookieStore. This function has the following two arguments.
wdg
: This argument has the handle of with the Browser widget instance that invokes the getCookies method.cookiesData
: This argument has the list of all the cookies that is present in the WKHTTPCookieStore. Each cookie will be in the form of a dictionary with the values: Version, Name, Value, ExpiresDate, Domain and Path.{ "Version": 1, "Name": "user_id2", "Value": "ZD0265", "ExpiresDate": '(null)'//in milliseconds "Domain": "kite.zerodha.com", "Path": "/" }
Example
//Sample code to invoke the getCookies method for a Browser widget. frmBrowser.myBrowser.getCookies(getCookiesInfo); function getCookiesInfo(wdg, cookiesdata) { kony.print(cookiesdata); }
Platform Availability
This method provides you with the ability to navigate one step back in the browser history.
Syntax
goBack()
Remarks
If the history stack is empty then this method has no effect.
This method can be used only when canGoBack returns true.
Limitations for SPA
If a user navigates from one form (for example, form A) to another form (for example, form B) that contains a Browser widget, and uses the goBack
API on the Browser widget, the user will be navigated to the previous form (form A). This behavior is observed only when the Browser widget has no navigation history yet.
If two Browser widgets are present on a form, and the goBack
API is used on a Browser widget (for example, Browser B), the user will be navigated to the previous web page in the other Browser widget (for example, Browser A). This behavior is observed only when the other Browser widget (Browser B) has no navigation history yet.
Example
//Sample code to invoke goBack method for a Browser widget. frmBrowser.myBrowser.goBack();
Platform Availability
This method provides you with the ability to navigate one step forward in the browser history.
Syntax
goForward()
Remarks
If there are no visited links in the history stack, then this method has no effect.
This method can be used only when canGoForward returns true.
Limitations for SPA
If a user navigates in a circle from form A to form B and then back to form A, when the goForward
API is used on the Browser widget in form A, the user will be navigated to Form B. This behavior is observed only when the Browser widget has no navigation history yet.
If two Browser widgets are present on a form, and the goForward
API is used on a Browser widget (for example, Browser B), the user will be navigated to the next web page in the other Browser widget (for example, Browser A). This behavior is observed only when the other Browser widget (Browser B) has no navigation history yet.
Example
//Sample code to invoke goForward method for a Browser widget. frmBrowser.myBrowser.goForward();
Platform Availability
Retrieves a Boolean value that indicates whether Apache Cordova apps are enabled.
Syntax
isCordovaAppsEnabled()
Parameters
None.
Return Values
Returns true
if Cordova apps are enabled, or false
if not.
Example
//Sample code to invoke isCordovaAppsEnabled method for a Browser widget. var status= frmBrowser.myBrowser.isCordovaAppsEnabled(); alert("Is Cordova Apps Enabled in the Browser widget?::" + status);
Retrieves a Boolean value that indicates whether your app can open an HTML preview.
Syntax
isHtmlPreviewEnabled()
Parameters
None.
Return Values
Returns true
if the app can open an HTML preview and HTML code with a single click, or false
if not.
Remarks
If this method returns true
, the app can open both an HTML preview and the corresponding HTML code with a single click. If it returns false
, a single click only opens the HTML code.
Example
//Sample code to invoke isHtmlPreviewEnabled method for a Browser widget. var status= frmBrowser.myBrowser.isHtmlPreviewEnabled(); alert("Is HTML Preview Enabled in the Browser widget?::" + status);
Retrieves a Boolean value indicating whether web app development is enabled in the app.
Syntax
isWebAppDevelopmentEnabled()
Parameters
None.
Return Values
Returns true
if web app development is enabled, or false
if not.
Remarks
Your app can use this value to enable or disable features depending on whether or not web app development is enabled.
Example
//Sample code to invoke isWebAppDevelopmentEnabled method for a Browser widget. var status= frmBrowser.myBrowser.isWebAppDevelopmentEnabled(); alert("Is Web App Development Enabled in the Browser widget?::" + status);
This method enables you to load the data into the Browser with the provided configuration.
Syntax
loadData(data,dataConfig)
Parameters
data
The contents of the resource file or image that has to be loaded into the Browser. The contents should be raw bytes returned by the camera or kony.io.File API.
Note: On Android platform, only string is accepted. The string should be a base64 encoded image.
dataConfig
A configuration dictionary for the specified data. Following are the options:
- mimeType: Optional. Specifies the mime type of the data. the default mime type is assumed as "text/html". For example, application/pdf, application/vnd.ms-powerpoint
- encoding: Optional. Specifies the encoding to be used. The default encoding is UTF-8. For example, UTF-8 or UTF-16.
- baseURL: Optional. The base URL for the content. The value is string specifying the file path.
On Android, you can use baseURL to access the application local web files (js/css). You can use
baseURL to refer files stored in <project> -> web -> localfiles -> <user folder structure>
As shown in the following example, JavaScript files (.js files) are stored in <project> -> web -> localfiles -> js folder. With respect to the example in src attribute of <script> tag, you must provide the relative path (for example, js/ExampleJS1.js) and the base URL in the baseURL key of dataConfig object as "file:///android_asset/web/localfiles/".
var htmlString = "<html><head><title>Hello World Example</title>" <script type= "text/javascript\" src=\"js/ExampleJS1.js\"></script>" <script type="text/javascript \" src=\"js/index.js\"></script>" <body><h1>Hello World !! </h1></body></html>"; /*An HTML String should always be written as a continuous line. Reformat the above code to be in a single line.*/ var dataConfig ={"mimeType":"text/html","baseURL":"file:///android_asset/web/localfiles/"}; frmHome.brwWidget.loadData(htmlString,dataConfig);
Exceptions
ERROR CODE | Description |
---|---|
100 | Invalid type of parameters |
101 | Invalid number of arguments |
Remarks
Following are the guidelines and limitations of this method:
Note: The document formats Excel, PowerPoint, and Word must be saved using Microsoft Office 97 or later versions.
Example
//Sample code to invoke loadData method in a Browser widget. var pdfFile = kony.io.File(path/to/pdf/file); var data = pdfFile.read(); var config = { "mimeType":"application/pdf", "encoding":"UTF-8"}; browserWidget.loadData(data,config);
Platform Availability
Available on all platforms except SPA and Desktop Web
This method registers a widget to enable 3D Touch peek and pop gestures.
Syntax
registerForPeekandPop(onPeekCallback, onPopCallback)
Parameters
onPeekCallback
A callback function that is invoked when the user slightly presses (soft press) the widget.
Callback Syntax
onPeekCallback(widget)
Callback Input Parameters
widget
A widget reference that is registered for peek and pop.
Callback Return Values
A PreviewInfoTable. See the Remarks section for a description of this table.
Callback Example
function onPeekCallback(widget) { var previewInfoTable = { "peekForm": frmSecond, "focusRect": [0, 0, 200, 200], "contentSize": [320, 480] }; return previewInfoTable; }
onPopCallback (Optional)
A callback function that is invoked when the user further presses (hard press) the preview that is displayed for the widget.
Callback Syntax
onPopCallback(widget,peekForm)
Callback Input Parameters
widget
A widget reference that is registered for peek and pop.
peekForm
A form reference that is displayed as preview/peek.
Callback Return Values
A form reference.
Callback Remarks
Use this callback to set the content for pop. The form handle returned by this callback is used for pop content. In general, the form that is used for preview is used for pop content also. If the pop callback is not implemented, peek disappears and the app returns to its previous state.
Callback Example
function onPopCallback(widget, peekForm) { // preview form used for pop also return peekForm; }
Remarks
A PreviewInfoTable has the following format.
Name: peekForm
Description: The form reference that will be displayed as preview. If an invalid form reference is given, the preview will not be shown.
Type: form reference
Name: focusRect (Optional)
Description: An array representing a rectangle in widgets view coordinates. If provided, this rectangle will be focused while its surrounding area will be blurred, indicating a preview is available for the widget. If not provided, entire view area of the widget will be focused. If either the width or height is zero, the widget's view width/height is used. The values are supported in percentage(with regard to widget bounds), dp, or pixels. The values are strings. If a string value is given without any format specifier, it defaults to dp. If an array of numbers is given, it is assumed they are dp values.
Type: Array [x, y, width, height]
Example: [“0dp”, “0dp”, “200dp”, “300dp”], [“10%”, “10%”, “75%”, “50%”], [“10px”, “10px”, “200px”, “480px”]
Name: contentSize (Optional)
Description: An array representing the preferred content size of the preview. This allows the user to adjust the preferred width/height dimensions of the preview. If not provided, the preview is shown with default values. If either the width or height is zero, the default preview width/height is used. It is recommended that one of the width/height values be zero for proper adjustment of the other value. For example, if width = 0, the height is adjustable and vice versa. Providing positive values simultaneously for both width and height will result in distorted appearance of preview. The values are supported in dp, pixels, and percentage(with regard to screen bounds). The actual width/height of the preview may vary slightly due to resizing per aspect ratio. The values are strings. If a string value is given without any format specifier, it defaults to dp. If array of numbers is given, it is assumed they are dp values.
Type: Array [width, height]
Example: [“0dp”, “100dp”], [“100%”, “0%”], [“0px”, “240px”]
Example of a PreviewInfoTable:
var previewInfoTable = { "peekForm": frmSecond, "focusRect": [0, 0, 200, 200], "contentSize": [320, 480] };
Return Values
None.
Platform Availability
This method provides you with the ability to reload the current web page.
Syntax
reload()
Example
//Sample code to invoke reload method for a Browser widget. frmBrowser.myBrowser.reload();
Platform Availability
This method allows you to remove a child widget from a parent widget.
Syntax
removeFromParent()
Read/Write
Yes - (Read and Write)
Example
//This is a generic method that is applicable for various widgets. //Here, we have shown how to use the removeFromParent Method for a Calendar widget. //You need to make a corresponding call of the removeFromParent method for other applicable widgets. Form1.calendar.removeFromParent();
Platform Availability
This method allows you to remove the specified gesture recognizer for the specified widget.
Syntax
removeGestureRecognizer(gestureHandle)
Parameters
gestureHandle - Mandatory
Specifies the handle to the gesture returned by addGestureRecognizer call.
Example
//Sample code to remove Double tap gesture from frmGestures FlexForm.
frmGestures.removeGestureRecognizer(doubletp);
Platform Availability
This method enables you to set the badge value to the given widget at the upper, right corner of the widget.
Syntax
setBadge(badgeText)
Parameters
badgeText [String] - Mandatory
Specifies the Text value that appears within the badge. If the length of the badgeText is greater than 1, the badge is a rounded rectangle. For example, if you specify the text of the badge as 88, the number appears in a rounded rectangular badge. If the length of the badge text is 1, the badge is always a circle. The badge can occupy up to 70% of the width of the parent widget. For example, on a button with a width of 100 pixels, a badge with about 100 characters will occupy only 70 pixels of the button width. The badge text is truncated and shows about 30 characters followed by three dots.
skin [String] - Optional
The parameter specifies the background color for the badge. The default color is red.
Return Values
None
Exceptions
Error
Remarks
The color for the badge can be defined using a skin. The default color for the badge is red with white lettering.
If you pass an empty string as a parameter, the badge applied to the widget is cleared.
A Badge can be applied only to the FlexContainer Widget. To apply badge to other widgets, place the corresponding widget inside the FlexContainer, then apply Badge to the FlexContainer Widget. Also make sure that the clipBounds property of the FlexContainer are set to false.
If the badge value is a single character (a character or a number), the badge shape is a circle.
If the badge value contains multiple characters, the badge shape is a rectangle with rounded corners and borders.
The badge can occupy a maximum of 70% width of the parent widget (widget on which badge is applied). For example, on a button with a width of 100 pixels, a badge with about 100 characters will occupy only 70 pixels of the button width. The badge value is truncated and about 30 characters followed by three dots.
When a badge is set, the widgets are re-arranged to accommodate the badge.
For iOS platform, this method is applicable on Box, Label, and Image widgets only.
For Android platform, this method is applicable for Button and Image widgets in Box Forms only.
Example
//This is a generic method that is applicable for various widgets. //Here, we have shown how to use the setBadge Method for button widget. //You need to make a corresponding call of the setBadge method for other applicable widgets. function setBadge() { /*To set a badge value with skin "badgeSkin" on a button btn1 placed on a form frm1, use the following code: */ frm1.btn1.setBadge("2", "badgeSkin"); } //For instance, the corresponding setEnabled method call on the Label widget is as follows: form.lbl1.setBadge("4", "badgeSkin");
Platform Availability
For more information about the Badge APIs refer the Kony API Reference Document.
In the iOS platform, when the Browser widget uses WKWebView engine to load data, a separate cookie storage area (called WKHTTPCookieStore) is created. This storage area is not connected to the parent app.
To sync the cookies in the WKHTTPCookieStore with the parent app, you must use the getCookies, setCookies and clearCookies methods of the Browser widget.
The setCookies method is an asynchronous method that helps you to set the cookies to the WKHTTPCookieStore from the parent app. The cookies will be available as an argument in the callback.
Syntax
setCookies(callback, cookiesData)
Input Parameters
cookiesData
: This argument has the list of all the cookies that is present in the WKHTTPCookieStore. Each cookie will be in the form of a dictionary with the values: Version, Name, Value, ExpiresDate, Domain and Path.
Here is an example of a cookie.
{ "Version": 1, "Name": "user_id2", "Value": "ZD0265", "ExpiresDate": '(null)'//in milliseconds "Domain": "kite.zerodha.com", "Path": "/" }
callback
: This parameter registers the function that is invoked when the cookie from the WKHTTPCookieStore is set in the cookie storage of the parent app. This function has the following two arguments.
wdg
: This argument has the handle of with the Browser widget instance that invokes the setCookies method.cookieObject
: This argument has the handle of the object for which the setCookies method is invoked. Remarks
Example
//Sample code to invoke the setCookies method for a Browser widget. var lisOfCookies = [{ "Name": "appName", "Value": "App01", "Domain": "app.example.com", "Path": "/" }]; frmBrowser.myBrowser.setCookies(setCookiesCallback, lisOfCookies); function setCookiesCallback(wdg, cookieObject) { kony.print(cookieObject); }
Platform Availability
iOS 11 and onwards
This method specifies the widget that must be enabled or disabled.
Syntax
setEnabled(enabled)
Parameters
enabled
[Boolean] - Mandatory
true -Indicates widget is enabled.
false - Indicates widget is disabled.
Return Values
None
Exceptions
Error
Remarks
Browser widget does not support this method in SPA.
This method is not applicable in Map widget.
Example
//This is a generic method that is applicable for various widgets. //Here, we have shown how to use the setEnabled Method for button widget. //You need to make a corresponding call of the setEnabled method for other applicable widgets. form1.myButton.setEnabled(false);
Platform Availability
Available on all platforms except SPA.
This method specifies the widget on which there must be focus.
Default : true
Syntax
setFocus(focus)
Parameters
focus [Boolean]- Mandatory
true -Indicates focus is set on a widget.
false - Indicates focus is not set on a widget.
Return Values
None
Exceptions
Error
Remarks
You should not call this method in preShow of a form as it is not respected by all platforms. In android platform, this method is not respected in preShow of a form. You can give focus to a particular widget only after it is rendered on the screen, hence it should be called in postShow of a form.
This method is not applicable in Form widget.
Example
//This is a generic method that is applicable for various widgets. //Here, we have shown how to use the setFocus Method for button widget. //You need to make a corresponding call of the setFocus method for other applicable widgets. form1.myButton.setFocus(true);
Platform Availability
Available on all platforms.
This method allows you to set a gesture recognizer for a specified gesture for a specified widget. You can set a Gesture recognizer only for a Form, a Box, and a Scroll Box. The setGestureRecognizer method is deprecated and should not be used in new software. However, Swipe Distance and Swipe Velocity parameters are not deprecated. So if you want to use the Swipe Distance and Swipe velocity parameters, use the setGestureRecognizer method. To use all other parameters, you must use the addGestureRecognizer method.
Syntax
setGestureRecognizer (gestureType,setupParams,gestureHandler)
Parameters
gestureType
[Number] - Mandatory
Specifies the type of gesture that needs to be detected on the widget. The following are possible values:
setupParams
[array of arrays] - Mandatory
The parameter specifies an object that has the configuration parameters to setup a gesture recognizer. See Remarks for the values for this parameter.
gestureHandler
[function] - Mandatory
The parameter specifies the function that needs to be executed when a gesture is recognized. See Remarks for the functions syntax.
onGesturefunction(widgetRef,gestureInfo)
The Kony platform populates the details in the gestureInfo array. This array has the following key-value pairs:
Return Values
String - Reference(uniqueidentifier) to the gesture is returned.
Exceptions
Error
Remarks
This method is applicable on Form, Box, and ScrollBox widgets only.
Configuration of setupParams
The configuration parameters vary based on the type of the gesture.
Gesture Type:TAP
For example:
{fingers:1,taps:1}
Gesture Type:SWIPE
For example:
{fingers:1,swipedistance:50,swipevelocity:75}
Gesture Type:LONGPRESS
For example:
{pressDuration:1}
Function syntax for the GestureHandler parameter
The parameter specifies the function that needs to be executed when a gesture is recognized. This function has the following Syntax:
onGesturefunction(widgetRef,gestureInfo)
The Kony platform populates the details in the gestureInfo array. This array has the following key-value pairs:
Example
//The below function will get invoked when a gesture is recognized. function myTap(myWidget, gestureInfo) { alert(" Tap Gesture detected"); alert("gestureType :" + gestureInfo.gestureType); alert("gesturePosition :" + gestureInfo.gesturePosition); //write any further logic here } //Setting Gesture configuration. var setupTblTap = { fingers: 1, taps: 2 }; //double tap gesture //To add a TAP gesture recognizer on a hbox with ID hbx1 placed on a form frm1 var tapGesture = frm1.hbx1.setGgestureRecognizer(1, setupTblTap, myTap);
Platform Availability
This method sets and overrides the existing onPeekCallback for the widget.
Syntax
setOnPeek(onPeekCallback)
Parameters
onPeekCallback
A callback function that is invoked when the user slightly presses (soft press) the widget.
Callback Syntax
onPeekCallback(widget)
Callback Parameters
widget
A widget reference that is registered for peek and pop.
Callback Return Values
PreviewInfoTable. See the Remarks section for a description of this table.
Callback Example
function onPeekCallback(widget, contextInfo) { var previewInfoTable = { "peekForm": frmSecond, "focusRect": [0, 0, 200, 200], "contentSize": [320, 480] }; return previewInfoTable; }
Return Values
None.
Remarks
A PreviewInfoTable has the following format.
Name: peekForm
Description: The form reference that will be displayed as preview. If an invalid form reference is given, the preview will not be shown.
Type: form reference
Name: focusRect (Optional)
Description: An array representing a rectangle in widgets view coordinates. If provided, this rectangle will be focused while its surrounding area will be blurred, indicating a preview is available for the widget. If not provided, entire view area of the widget will be focused. If either the width or height is zero, the widget's view width/height is used. The values are supported in percentage(with regard to widget bounds), dp, or pixels. The values are strings. If a string value is given without any format specifier, it defaults to dp. If an array of numbers is given, it is assumed they are dp values.
Type:Array [x, y, width, height]
Example: [“0dp”, “0dp”, “200dp”, “300dp”], [“10%”, “10%”, “75%”, “50%”], [“10px”, “10px”, “200px”, “480px”]
Name:contentSize (Optional)
Description:An array representing the preferred content size of the preview. This allows the user to adjust the preferred width/height dimensions of the preview. If not provided, the preview is shown with default values. If either the width or height is zero, the default preview width/height is used. It is recommended that one of the width/height values be zero for proper adjustment of the other value. For example, if width = 0, the height is adjustable and vice versa. Providing positive values simultaneously for both width and height will result in distorted appearance of preview. The values are supported in dp, pixels, and percentage(with regard to screen bounds). The actual width/height of the preview may vary slightly due to resizing per aspect ratio. The values are strings. If a string value is given without any format specifier, it defaults to dp. If array of numbers is given, it is assumed they are dp values.
Type:Array [width, height]
Example: [“0dp”, “100dp”], [“100%”, “0%”], [“0px”, “240px”]
Example of a PreviewInfoTable:
var previewInfoTable = { "peekForm": frmSecond, "focusRect": [0, 0, 200, 200], "contentSize": [320, 480] };
Example
function settingPeek() { Form1.setOnPeek(onMyPeekcallback); } function onMyPeekcallback(widgetref, contextInfo) { if (typeof(contextInfo) === undefined) { return null; } var previewInfoTable = { "peekForm": frmSecond, "focusRect": [0, 0, 200, 200], "contentSize": [320, 480] }; return previewInfoTable; }
Platform Availability
This method overrides the existing onPopCallback for the widget.
Syntax
setOnPop(onPopCallback)
Parameters
onPopCallback
A callback function that is invoked when the user slightly presses (soft press) the widget.
Callback Syntax
onPopCallback(widget,peekForm)
Callback Parameters
widget
A widget reference that is registered for peek and pop.
peekForm
A form reference that is displayed as preview/peek.
Callback Return Values
A form reference.
Callback Remarks
Use this callback to set the content for pop. The form handle returned by this callback is used for pop content. In general, the form that is used for preview is used for pop content also. If the pop callback is not implemented, peek disappears and the app returns to its previous state.
Callback Example
function onPopCallback(widget, peekForm) { // preview form used for pop also return peekForm; }
Return Values
None.
Example
function settingPop() { Form1.setOnPop(myonPopcallback); } function myonPopcallback(widgetref, peekForm) { // preview form used for pop also return peekForm; }
Platform Availability
Sets credentials that should be sent to the browser widget.
Syntax
setResponse (eventType,data)
Parameters
eventType [Integer]- Mandatory
The type of the event callback.
data[map]- Mandatory
The map contains credentials passed to the browser widget. See the Remarks section for more information.
Return Values
None
Remarks
If eventType is constants.WEBWIDGET_RECEIVE_TYPE_HTTP_AUTH’, the data object should consist of following sub parameters as key value pairs:
username[String] – Mandatory.
If username is given as empty string or is incorrect, the onReceive event is sent again.
password[String] – value in string format.
If password is given as empty string or is incorrect, the onReceive event is sent again.
For all other values it will display error page with status code 401.
Platform Availability
Android
This method is used to set an action for a Browser widget, when the onSafeBrowsingHit event is triggered.
Syntax
setSafeBrowsingResponse(requestUrl, response, allowReporting)
Input Parameters
Remarks
Example
/*Sample code to invoke setSafeBrowsingResponse method in Browser widget, when requestUrl triggers onSafeBrowsingHit event.*/ frm1.browserID.setSafeBrowsingResponse(requestUrl, constants.BROWSER_SET_SAFEBROWSING_RESPONSE_SHOW_DEFAULT_INTERSTITIAL, true);
Platform Availability
Use this method to set the visibility of the widget.
Default : true
Syntax
setVisibility(visible)
Parameters
visible
[Boolean] - Mandatory
true -Indicates visibility is true.
false - Indicates visibility is false.
animationConfig
[JSObject] - Optional. The parameter specifies the animation configuration of the object. This is not supported in SPA and Desktop Web platforms.
Following are the parameters of the JSObject:
animEffect
Optional. The parameter specifies the animation effect. Following are the available options of animation effect:
animDuration
Optional. The parameter specifies the duration of the animation effect in seconds. The default value is 1 second. The negative values are ignored and defaulted to 1 second.
animDelay
Optional. This parameter specifies the delay of the animation effect in seconds. The default value is 0 second. The negative values are ignored and defaulted to 0 second.
animCurve
Optional. The parameter specifies the animation curve to be applied while playing the animation. An animation curve defines the speed of the animations at different intervals of the animation duration. Following are the available options of animation curve:
animCallBacks - Optional
It is a JS dictionary containing the events invoked by the platform during the animation life cycle. Following are the available events:
Return Values
None
Exceptions
Error
Remarks
This method is not applicable on Form, Popup, and Alert. It is also not applicable if the widget is placed in a Segment. When the widget is placed in a Segment, the default Visibility is set to true. If you want to change the value to false, you can do so by using Segment methods.
Passing an invalid type other than the above events lead to run time exceptions/ crashes.
This method is not supported on the widgets FlexForm, FlexContainer, and FlexScrollContainer.
Example
//This is a generic method that is applicable for various widgets. //Here, we have shown how to invoke the setVisibility Method for a button widget with animation. //You need to make a corresponding call of the setVisibility method for other applicable widgets. form1.myButton.setVisibility( false, { "animEffect": constants.ANIMATION_EFFECT_COLLAPSE, "animDuration": 1, "animDelay": 0, "animCurve": constants.ANIMATION_CURVE_LINEAR, "animCallBacks": { "animStarted": startCallBackFunc, "animEnded": endCallBackFunc } }); //Sample code to invoke setVisibility Method for button widget without animation. form1.myButton.setVisibility(false);
Platform Availability
Available on all platforms.
This method unregisters a widget from 3D Touch peek and pop gestures.
Syntax
unregisterForPeekandPop()
Parameters
None.
Return Values
None.
Example
Form1.unregisterForPeekAndPop();
Platform Availability
prem | Copyright © 2012 Kony, Inc. All rights reserved. |
prem | Copyright © 2012 Kony, Inc. All rights reserved. |