PhoneGap Windows8 的自定义插件将调用 c# 代码
Posted
技术标签:
【中文标题】PhoneGap Windows8 的自定义插件将调用 c# 代码【英文标题】:Custom Plugin for PhoneGap Windows8 that will call c# code 【发布时间】:2013-04-17 09:30:31 【问题描述】:我想开发一个可以在 windows8 和 android 中显示传感器数据的应用程序。 我将 phoneGap 用于某些传感器,但是,例如,气压计,phoneGAP 中没有实现。 我想为cordova-windows8 开发一个插件。但是网上没有关于如何做到这一点的例子。 我想调用将 Microsoft.codePack API 用于传感器的 c# 函数以显示气压计数据。 ApiCodePack 使用 windows 7 API 作为传感器。 http://archive.msdn.microsoft.com/WindowsAPICodePack
是否有任何选项可以为 cordova-windows8 开发一个调用 c# 代码的插件? 一个示例应用程序将不胜感激。
谢谢!
【问题讨论】:
【参考方案1】:是的,当然你可以在电话间隙调用 C# 代码
您需要参考Plugin development指南
计算器示例插件
html 代码: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#代码: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));
享受 c# 的自定义插件
【讨论】:
我在这里看到了 WPCordovaClassLib 参考。我可以将此引用添加到 windows8 应用程序吗?它不是 Windows Phone 应用程序... 我已经为 W8 手机应用程序进行了配置。我不确定 Windows8 应用程序。但是电话差距support Windows 8 所以你需要检查一下。以上是关于PhoneGap Windows8 的自定义插件将调用 c# 代码的主要内容,如果未能解决你的问题,请参考以下文章
phonegap 2.9.1 的 IOS Write 插件 [关闭]
如何在 file:/// 协议 (Cordova/Phonegap) 下使用来自 dojo 的自定义构建