開發cordova下的wp8插件

一、建立cs文件

在VS中,右鍵項目,添加新建項,選擇類,給這個類命名,咱們就叫他Exit.cs吧。 json

二、編輯cs文件

在文件裏包含下面內容,這是cordova和C#代碼溝通的橋樑: 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\"}"));
            }
        }
    }
}

三、配置config.xml文件

在config.xml文件裏的widget元素內加入: app

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

四、寫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,還沒安裝的小夥伴能夠到我上一篇博文裏查看安裝方法,點擊這裏 函數

五、完工總結

這樣就解決了cordova的wp8平臺沒提供退出應用的問題了。 this

固然,你們也能夠基於這個例子,爲所欲爲地製做本身須要的插件,也可使用plugman發佈插件到互聯網上分享。 編碼

相關文章
相關標籤/搜索