PhoneGap Windows8的自定义插件,将调用c#代码 [英] Custom Plugin for PhoneGap Windows8 that will call c# code

查看:132
本文介绍了PhoneGap Windows8的自定义插件,将调用c#代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



有没有任何选项为cordova-windows8开发一个插件,将调用c#代码?

解决方案

p>是的,当然可以在手机差距中拨打C#代码



您需要参考插件开发指南



计算器示例插件



HTML CODE:calculator.html

 < html& 
< head>
<! - meta name =viewportcontent =width = device-width,height = device-height,user-scalable = yes,initial-scale = 2.0,maximum-scale = 4.0, scale = 1.0/ -
< meta name =viewportcontent =initial-scale = 1.0,maximum-scale = 1.0,user-scalable = no; />
< meta http-equiv =Content-typecontent =text / html; charset = utf-8/> <! - ISO-8859-1 - >
< title> Cordova< / title>
< link rel =stylesheethref =master.csstype =text / cssmedia =screen/>


< script type =text / javascriptcharset =utf-8src =cordova-current.js>< / script&


< script type =text / javascriptcharset =utf-8>

var deviceReady = false;

/ **
*页面加载完成后调用的函数。
* /
函数init(){
document.addEventListener(deviceready,function(){
deviceReady = true;
console.log + 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 =发生错误:+ e;
},
Calculator,sum,
{x:document.getElementById('x')。 .getElementById('y')。value});
};

< / script>

< / head>
< body onLoad =init(); id =stageclass =theme>

< h1>计算器< / h1>
< div id =info>
< span class ='tb-label'> X< / span> < span id =Span1>< / span>
< input type =textid =xvalue =1style =width:250px; height:20px;/>
< br />
< span class ='tb-label'> Y< / span> < span id =Span2>< / span>
< input type =textid =yvalue =2style =width:250px; height:20px;/>
< br />
Sum:< span id =res>< / span>
< / div>
< h2>操作< / h2>
< a class =btn largeonclick =calculateSum();>计算< / a>
< h2> < / h2>< a href =index.htmlclass =backBtn>返回< / a>
< / body>
< / html>

C#代码:calculator.cs

 使用System.Runtime.Serialization; 
使用WPCordovaClassLib.Cordova;
使用WPCordovaClassLib.Cordova.Commands;
使用WPCordovaClassLib.Cordova.JSON;

命名空间Cordova.Extension.Commands
{
public class Calculator:BaseCommand
{

[DataContract]
public class CalculateParameters
{
[DataMember]
public double x {get;组; }
[DataMember]
public double y {get;组; }
}

public void sum(string args)
{
CalculateParameters calcParam = JsonHelper.Deserialize< CalculateParameters> (args);

this.DispatchCommandResult(new PluginResult(PluginResult.Status.OK,calcParam.x + calcParam.y));
}
}
}




I want to develop an application that will display sensor data in both windows8 and android. I'm using phoneGap for some sensors, but, for example, barometer, there is no implementation in phoneGAP. I want to develop a plugin for cordova-windows8. but there is no example in the web for how to do it. I want to call c# function that uses Microsoft.codePack API for sensors in order to display the barometer data. the ApiCodePack uses windows 7 API for sensors. http://archive.msdn.microsoft.com/WindowsAPICodePack

is there any option to develop a plugin for cordova-windows8 that will call c# code? a sample application will be appreciate.

thanks!

解决方案

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#

这篇关于PhoneGap Windows8的自定义插件,将调用c#代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆