如何在Windows / Windows手机的通用应用中启动实现IBackgroundTask
的后台任务?
我正在使用cordova为ios,android,wp8和windows创建一个应用程序。每个平台似乎在应用程序启动之前运行本机类,因此您可以在此处添加代码以启动任务/服务。当一个Windows项目由cordova创建时,它被创建为一个javascript项目,因此没有c#文件可以开始。
我唯一的选择是添加winJs
代码来启动后台任务吗?
答案 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插件非常简单,非常有用。