如何在Windows WinRT / c的设备/应用程序启动时启动后台任务#

时间:2015-05-05 12:51:22

标签: javascript c# cordova windows-runtime winjs

如何在Windows / Windows手机的通用应用中启动实现IBackgroundTask的后台任务?

我正在使用cordova为ios,android,wp8和windows创建一个应用程序。每个平台似乎在应用程序启动之前运行本机类,因此您可以在此处添加代码以启动任务/服务。当一个Windows项目由cordova创建时,它被创建为一个javascript项目,因此没有c#文件可以开始。

我唯一的选择是添加winJs代码来启动后台任务吗?

2 个答案:

答案 0 :(得分:4)

最后,我通过将其创建为cordova插件来解决这个问题。所以我的插件有一个名为init的方法,我在应用程序启动时调用它。使用该插件,我可以在iOS,Android或Windows中调用服务。

一旦我创建了插件,我就从WindowProxy.js文件中启动了我的Windows服务,该文件是cordova插件的一部分。

请注意,您的服务本身必须位于单独的库中,并且该库必须将输出类型设置为Windows运行时组件。

启动服务的示例代码如下

WindowsProxy.js文件中的代码

var val,id,q1,userName;
function returnData(param)
{
   $("#form_userName").val(param);
}
function ajaxFetch(query, callback)
{
  var x = $.post( "/ajax/crud.php",{mode:"fetch",query:query},function(data) {
    callback(data);
  })
}
$(document).on("click",".btnCall",
    function(){
        id=$(this).data("id")//gets an id from a data tag
        q1 = "SELECT NAME FROM user WHERE ID="+id;
        ajaxFetch(q1,returnData);
    }
);

答案 1 :(得分:0)

如果你需要选择要实现的类...我建议本地编写应用程序。

如果你想保留用javascript编写的逻辑的核心,并将这个类用于你需要在后台运行的单个任务,你可以在windows的本地语言中编写功能,然后遵循这个{{3}将它包装在cordova插件中。

我个人建议这个解决方案,写cordova插件非常简单,非常有用。