cordova-plugin-x-toast
Version:
This plugin allows you to show a Toast. A Toast is a little non intrusive buttonless popup which automatically disappears.
84 lines (65 loc) • 1.95 kB
JavaScript
var toast,
resultObjs = {},
threadCallback = null,
_utils = require("../../lib/utils");
module.exports = {
show: function (success, fail, args, env) {
var result = new PluginResult(args, env);
resultObjs[result.callbackId] = result;
var message = JSON.parse(decodeURIComponent(args[0])),
duration = JSON.parse(decodeURIComponent(args[1])),
position = JSON.parse(decodeURIComponent(args[2]));
toast.getInstance().show(result.callbackId, {message:message, duration:duration, position:position});
}
};
///////////////////////////////////////////////////////////////////
// JavaScript wrapper for JNEXT plugin for connection
///////////////////////////////////////////////////////////////////
JNEXT.Toast = function () {
var self = this,
hasInstance = false;
self.getId = function () {
return self.m_id;
};
self.init = function () {
if (!JNEXT.require("libToast")) {
return false;
}
self.m_id = JNEXT.createObject("libToast.Toast_JS");
if (self.m_id === "") {
return false;
}
JNEXT.registerEvents(self);
};
// calls into InvokeMethod(string command) in Toast_JS.cpp
self.show = function (callbackId, input) {
return JNEXT.invoke(self.m_id, "show " + callbackId + " " + JSON.stringify(input));
};
// Fired by the Event framework (used by asynchronous callbacks)
self.onEvent = function (strData) {
var arData = strData.split(" "),
callbackId = arData[0],
result = resultObjs[callbackId],
data = arData.slice(1, arData.length).join(" ");
if (result) {
if (callbackId != threadCallback) {
result.callbackOk(data, false);
delete resultObjs[callbackId];
} else {
result.callbackOk(data, true);
}
}
};
// ************************
// End of methods to edit
// ************************
self.m_id = "";
self.getInstance = function () {
if (!hasInstance) {
hasInstance = true;
self.init();
}
return self;
};
};
toast = new JNEXT.Toast();