在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发布插件到互联网上分享。 编码