JavaScript API¶
The JavaScript module axemas.js
permits interaction with the native code of the application:
- goto
- gotoFromSidebar
- call
- alert
- dialog
- showProgressHUD
- hideProgressHUD
- getPlatform
- platformDetails
- storeData
- fetchData
- removeData
- log
goto¶
Pushes new section
on the navigation stack. It is the equivalent of the iOS [NavigationSectionsManager goto]
and Android’s NavigationSectionsManager.goTo()
.
All three functions accept a dictionary as payload which defines the extra actions the goto
call must execute:
axemas.goto(
{"url":"www/home.html",
"title":"HOME",
"toggleSidebarIcon":"slide_icon",
"stackMaintainedElements": 0,
"stackPopElements": 0}
);
The payload structure is shared between JavaScript, Objective C and Java, and accepts the following parameters:
url
contains the local or remote address from which the WebView must load the contenttitle
(optional) is the tile show in the application’s ViewController / Action Bar.toggleSidebarIcon
(optional) is the sidebar’s icon to be displayed and if missing a button to open the sidebar will not be createdactionbarRightIcon
(optional) icon to display as a button on the right of the actionbar inside the target section, pressing the button triggers thenavigationbarRightButtonAction
event on section controllers.stackMaintainedElements
(optional) instructs the navigation stack to pop all views and maintain the last Xsections
indicated on the bottom of the stack; it is ill advised to use in conjunction withstackPopElements
stackPopElements
(optional) instructs the navigation stack to pop the first Xsections
; it is ill advised to use in conjunction withstackMaintainedElements
animation
(optional) only supported on iOS platform, can be used to change the default push/pop animation in one of"fade"
or"slidein"
values
gotoFromSidebar¶
Same as goto
but closes the sidebar and must be used only inside the sidebar section
. Refer to goto
:
axemas.gotoFromSidebar(
{"url":"www/home.html",
"title":"HOME",
"toggleSidebarIcon":"slide_icon",
"stackMaintainedElements": 0,
"stackPopElements": 0}
);
call¶
The call
enables JavaScript to execute a native registered handler inside a SectionController
:
axemas.call('openNativeController');
axemas.call('execute-and-return', '{"payload": "something"}', function(result) {
alert(JSON.strgify(result));
});
alert¶
Creates a native dismissible alert dialog with a title and a message:
axemas.alert('Alert title', "Alert message");
dialog¶
Generates a native dialog with a title, a message and a maximum of three buttons. When pressing a button a callback returns the button’s value as integer, range [0-3]:
axemas.dialog('Dialog title', 'Dialog display message', ['Cancel', 'Ok'],function(data) {
axemas.alert('Pressed button', data.button);
});
showProgressHUD¶
Locks interface interaction by displaying a spinner on the screen. The same spinner is always displayed when lading the contents of a page inside a section
:
axemas.showProgressHUD();
getPlatform¶
Uses the navigator.userAgent
object to determine if the current platform. Returns Android
, iOS
or unsupported
:
if (axemas.getPlatform() == 'your_platform') {
//do something
}
platformDetails¶
Getting information about device: model
, systemName
and systemVersion
.
For example:
axemas.platformDetails(function(device_info) {
console.log(device_info);
});
// Example of the device_infor
//iOS Device
{model: "iPhone", systemVersion: "9.3", systemName: "iPhone OS"}
//Android Device
{model: "Nexus 5", systemName: "Android", systemVersion: "6.0.1"}
storeData¶
Uses the Native/WebView’s localSotrage
for key/value storing. Data stored will be available next time the application is launched:
axemas.storeData("key","only_string_values");
removeData¶
Permanently removes the previously saved data from the locationStorage:
axemas.removeData("key")
log¶
Utility for use native and javascript log system:
axemas.log("Hello World");
or:
axemas.log({'tag': 'CustomTAG', 'message': "Hello World"});
tag
is the tag for Android, default is AXEMAS_LOGmessage
is the message of the log as String