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

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

问题描述

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

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

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

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

谢谢!

推荐答案

当然可以在电话间隙调用C#代码

Yes of course you can call C# code in phone gap

需要参考插件开发 指南

计算器示例插件

HTML 代码:calculator.html

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#代码:calculator.cs

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));
        }
    }
}

享受 c# 的自定义插件

enjoy custom plugin for c#

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

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