Files
2026-03-28 03:43:40 +09:00

76 lines
1.9 KiB
JavaScript

var exec = require("cordova/exec");
function normalizeError(error) {
if (typeof error !== "string") {
return error || { code: "UNKNOWN", message: "Unknown error" };
}
try {
return JSON.parse(error);
} catch (parseError) {
return {
code: "UNKNOWN",
message: error
};
}
}
function execWithPromise(action, options, success, error) {
if (typeof success === "function" || typeof error === "function") {
exec(
success,
function (nativeError) {
if (typeof error === "function") {
error(normalizeError(nativeError));
}
},
"BluememeWifiConnector",
action,
[options || {}]
);
return;
}
return new Promise(function (resolve, reject) {
exec(
resolve,
function (nativeError) {
reject(normalizeError(nativeError));
},
"BluememeWifiConnector",
action,
[options || {}]
);
});
}
module.exports = {
connect: function (options, success, error) {
return execWithPromise("connect", options, success, error);
},
connectLocalOnly: function (options, success, error) {
return execWithPromise("connectLocalOnly", options, success, error);
},
addNetworkSuggestion: function (options, success, error) {
return execWithPromise("addNetworkSuggestion", options, success, error);
},
removeNetworkSuggestion: function (options, success, error) {
return execWithPromise("removeNetworkSuggestion", options, success, error);
},
saveNetwork: function (options, success, error) {
return execWithPromise("saveNetwork", options, success, error);
},
disconnect: function (options, success, error) {
if (typeof options === "function" || typeof options === "undefined") {
return execWithPromise("disconnect", {}, options, success);
}
return execWithPromise("disconnect", options || {}, success, error);
}
};