开发cordova下的wp8插件

1、创建cs文件

在VS中,右键项目,添加新建项,选择类,给这个类命名,我们就叫他Exit.cs吧。

2、编辑cs文件

在文件里包含下面内容,这是cordova和C#代码沟通的桥梁:

using WPCordovaClassLib.Cordova;
using WPCordovaClassLib.Cordova.Commands;
using WPCordovaClassLib.Cordova.JSON;
using System.Windows;//最后这一行是要退出应用所需要的,一般的插件不必包含
cs文件的主体内容:
namespace myPlugins//命名空间自选
{
    public class Exit : BaseCommand//需要继承BaseCommand类,这里类名需要和文件名一致
    {
        public void exitApp(string options)
        //用public声明方法,返回值为void,传入的参数为字符串的
        {
            string optVal = null;

            try
            {
                optVal = JsonHelper.Deserialize<string[]>(options)[0];
                //因为js传过来的值都经过json编码过的,这里需要解码 
            }
            catch (Exception)
            {
                //异常处理
            }

            if (optVal == null)
            {
                DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
            }
            else
            {
                Application.Current.Terminate();//重点,退出应用
                //返回状态,这里可以注释掉第二行,因为应用退出了,返回就没意义了。
                DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "{data: \"ok\"}"));
            }
        }
    }
}

3、配置config.xml文件

在config.xml文件里的widget元素内加入:

<feature name="Exit">
    <param name="wp-package" value="myPlugins.Exit" />
</feature>

4、写js代码

var app = {
    location: 'index',
    initialize: function() {
        this.bindEvents();
    },
    // `load`, `deviceready`, `offline`, and `online`.
    bindEvents: function() {
        document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    onDeviceReady: function(){
        //注册返回按钮事件
        document.addEventListener('backbutton', app.onBackKeyDown, false);
    },
    onBackKeyDown: function(e){
        switch(app.location){
            case 'index':
	        navigator.notification.confirm(
		    '您确定要退出游戏吗?',
		    function(button){
		        if(button == 1){//点击了确定按钮
			    cordova.exec(
			        function(data){
				    //调用C#代码成功的回调函数
			        },
			        function(data){
				//调用C#代码失败的回调函数
			        },
			        'myPlugins.Exit',//插件类名
			        'exitApp',//插件方法名
			        ["string"]//要传递的参数
			    );
		        }
		    },
		    '提示',
		    ['确定', '取消']
	        );
            break;
        }
    }
};
app.initialize();


这里使用到了内置插件notification,还没安装的小伙伴可以到我上一篇博文里查看安装方法,点击这里

5、完工总结

这样就解决了cordova的wp8平台没提供退出应用的问题了。

当然,大家也可以基于这个例子,随心所欲地制作自己需要的插件,也可以使用plugman发布插件到互联网上分享。

转载于:https://my.oschina.net/arrowing/blog/182494

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值