2013-04-17 26 views
1

我想開發一個應用程序,將在Windows8和Android中顯示傳感器數據。 我對某些傳感器使用phoneGap,但是,例如,晴雨表,phoneGAP中沒有實現。 我想爲cordova-windows8開發一個插件。但在網絡中沒有例子可以說明如何去做。 我想調用c#函數,爲傳感器使用Microsoft.codePack API來顯示氣壓計數據。 ApiCodePack使用Windows 7 API作爲傳感器。 http://archive.msdn.microsoft.com/WindowsAPICodePackPhoneGap Windows8自定義插件,將調用C#代碼

是否有任何選項來開發cordova-windows8的插件,將調用C#代碼? 示例應用程序將不勝感激。

謝謝!

回答

2

當然是的,你可以調用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的自定義插件#

+0

我在這裏看到WPCordovaClassLib參考。我可以添加這個參考到Windows8應用程序?它不是Windows Phone應用程序... – gln

+0

我已配置爲W8手機應用程序。我不確定Windows8應用程序。但電話差距[支持](http://docs.phonegap.com/en/2.5.0/guide_getting-started_index.md.html#Getting%20Started%20Guides)Windows 8,所以你需要檢查相同。 – MSTdev

+0

嗨Gln你的問題解決了 – MSTdev

相關問題