1

我想开发一个在 windows8 和 android 中显示传感器数据的应用程序。我将 phoneGap 用于某些传感器,但是,例如,气压计,phoneGAP 中没有实现。我想为cordova-windows8 开发一个插件。但是网上没有关于如何做到这一点的例子。我想调用将 Microsoft.codePack API 用于传感器的 c# 函数以显示气压计数据。ApiCodePack 使用 windows 7 API 作为传感器。 http://archive.msdn.microsoft.com/WindowsAPICodePack

是否有任何选项可以为cordova-windows8开发一个调用c#代码的插件?一个示例应用程序将不胜感激。

谢谢!

4

1 回答 1

2

是的,当然你可以在电话间隙调用 C# 代码

您需要参考插件开发指南

计算器的示例插件

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# 的自定义插件

于 2013-04-17T09:56:15.177 回答