0

我使用 jquerymobile、phonegap 和 html5 编写了一个 android 应用程序,它调用 web 服务来获取任何更新。让我们将该函数称为“同步”。我还使用setInterval("javascript function",milliseconds);安排“同步”每 15 分钟运行一次。. 我面临的问题是,由于这是一个 HTML5 应用程序,“同步”只有在应用程序位于前台时才会运行。所以我开发了一个android服务并将“同步”逻辑移动到java服务层。

现在,我的问题是,用户有一个手动调用“同步”功能的按钮。

我的问题是:“我可以绑定我的 HTML 按钮来触发或重新启动我的 Android 服务”吗?

谢谢

4

1 回答 1

1

我设法通过创建一个自定义 phonegap 插件来解决这个问题,这样我就可以绑定 html 按钮来启动我的服务。

   public class MyJSInterface extends CordovaPlugin {

        @Override
        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
            if (action.equals("startSync")) {
                this.startSync(args.getString(0), args.getString(1));
                callbackContext.success();
                return true;
            }
         }}

然后是js代码

window.MyJSInterface = {
startAutoSync: function(username, password, callback) {
    cordova.exec(callback, function(err) {
            console.log('Failed to execute startSync native code');
        }, 
        "MyJSInterface", 
        "startSync", 
        [username, password]
    );
}}
于 2013-10-24T07:31:47.623 回答