Note: Here it is assumed that you have properly
running Phone gap project.
Writing plugins is very easy for android in phonegap. Here are simple four steps to write plugins.
1. Create TestingPlugin.java class in src folder of
your eclipse project.
Replace that file with following code,
Code:
package src.com.testing;
import
org.apache.cordova.api.Plugin;
import
org.apache.cordova.api.PluginResult;
import
org.json.JSONArray;
public class TestingPlugin extends Plugin {
@Override
public PluginResult
execute(String action, JSONArray data, String callbackId) {
try {
return new
PluginResult(PluginResult.Status.OK, "Process successful");
}
catch(Exception e) {
return new
PluginResult(PluginResult.Status.ERROR, "Process
fail");
}
}
}
Remember one thing that, method from plugin
class can return PluginResult only.
2. Now in your www folder
create one html file and use following code,
Code:
<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport"
content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="stylesheets/jquery.mobile-1.1.0.min.css"
/>
<script src="scripts/jquery-1.7.1.min.js"></script>
<script src="scripts/TestingPlugin.js"></script>
<script src="scripts/jquery.mobile-1.1.0.min.js"></script>
<script type="text/javascript"
charset="utf-8" src="scripts/cordova-2.0.0.js"></script>
<script type="text/javascript">
function onBodyLoad()
{
document.addEventListener("deviceready", onDeviceReady,
false);
}
function onDeviceReady()
{
navigator.notification.alert("Testing")
}
function
callNativePlugin( returnSuccess ) {
TestingPlugin.callNativeFunction(
success, fail, returnSuccess );
}
function success
(result) {
alert("SUCCESS: \r\n"+result );
}
function fail (error) {
alert("ERROR: \r\n"+error );
}
</script>
</head>
<body onload="onBodyLoad()">
<h1>Testing</h1>
<button onclick="callNativePlugin('Your_parameters');">Invoke plugin</button>
</body>
</html>
Here include all necessary scripts
carefully. Important script is highlighted here. It is necessary for calling
plugin function.
3. Now in "www -> scripts" folder create
TestingPlugin.js file and use following code.
Code:
var TestingPlugin =
{
callNativeFunction: function (success, fail,
resultType) {
return cordova.exec(success, fail, "src.com.testingplugin.TestingPlugin", "nativeAction", [resultType]);
}
};
4. Now open "res -> xml -> plugins.xml" file and past following line of code under <plugins></plugins> tag,
Code:
<plugin
name=”src.com.testingplugin.TestingPlugin” value=” src.com.testingplugin.TestingPlugin”/>
5. And here you are ready to go. Here for every facility you have to write one class.
Enjoy plugins....