在VS中,右鍵項目,添加新建項,選擇類,給這個類命名,咱們就叫他Exit.cs吧。 json
在文件裏包含下面內容,這是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文件裏的widget元素內加入: app
<feature name="Exit"> <param name="wp-package" value="myPlugins.Exit" /> </feature>
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發佈插件到互聯網上分享。 編碼