Yes of course you can call C# code in phone gap
You need to refer Plugin development Guide
sample plugin for calculator
HTML CODE :calculator.html
<html>
<head>
<!-- meta name="viewport" content="width=device-width, height=device-height, user-scalable=yes, initial-scale=2.0, maximum-scale=4.0, minimum-scale=1.0" / -->
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/> <!-- ISO-8859-1 -->
<title>Cordova</title>
<link rel="stylesheet" href="master.css" type="text/css" media="screen"/>
<script type="text/javascript" charset="utf-8" src="cordova-current.js"></script>
<script type="text/javascript" charset="utf-8">
var deviceReady = false;
/**
* Function called when page has finished loading.
*/
function init() {
document.addEventListener("deviceready", function () {
deviceReady = true;
console.log("Device=" + device.platform + " " + device.version);
}, false);
window.setTimeout(function () {
if (!deviceReady) {
alert("Error: Cordova did not initialize. Demo will not run correctly.");
}
}, 1000);
}
function calculateSum() {
cordova.exec(
function (res) {
document.getElementById('res').innerHTML = res;
},
function (e) {
console.log("Error occurred: " + e);
document.getElementById('res').innerHTML = "Error occurred: " + e;
},
"Calculator", "sum",
{ x: document.getElementById('x').value, y: document.getElementById('y').value });
};
</script>
</head>
<body onLoad="init();" id="stage" class="theme">
<h1>Calculator</h1>
<div id="info">
<span class='tb-label'>X</span> <span id="Span1"></span>
<input type="text" id="x" value="1" style="width:250px;height:20px;"/>
<br/>
<span class='tb-label'>Y</span> <span id="Span2"></span>
<input type="text" id="y" value="2" style="width:250px;height:20px;"/>
<br/>
Sum: <span id="res"></span>
</div>
<h2>Action</h2>
<a class="btn large" onclick="calculateSum();">Calculate</a>
<h2> </h2><a href="index.html" class="backBtn">Back</a>
</body>
</html>
C# Code :calculator.cs
using System.Runtime.Serialization;
using WPCordovaClassLib.Cordova;
using WPCordovaClassLib.Cordova.Commands;
using WPCordovaClassLib.Cordova.JSON;
namespace Cordova.Extension.Commands
{
public class Calculator : BaseCommand
{
[DataContract]
public class CalculateParameters
{
[DataMember]
public double x { get; set; }
[DataMember]
public double y { get; set; }
}
public void sum(string args)
{
CalculateParameters calcParam = JsonHelper.Deserialize<CalculateParameters> (args);
this.DispatchCommandResult(new PluginResult(PluginResult.Status.OK, calcParam.x + calcParam.y));
}
}
}
enjoy custom plugin for c#
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…