Wednesday, 29 August 2012

Writing Plugins For Phonegap In Android


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....

No comments:

Post a Comment