繁体   English   中英

多个HTML页面应用程序中的HTTP请求处理

[英]http request handling in multiple html pages app cordova

我有一个MPA(多页应用程序)。 为Android和iOS发布。 当用户想要导航到其他页面(视​​图)时,它仅更改页面。 一切正常。 我想实现一些后端同步功能。 问题是,我在后台静默发出Ajax请求,用户可以随时更改页面,因此应用程序可能会丢失对Ajax调用的引用,这对于跟踪同步数据非常重要。

有没有可以在本地代码级别发出http请求或其他解决方法的插件。

看看cordova-plugin-http ,它是一个本地插件,可以在后台线程上执行所有HTTP请求。

安装:

cordova plugin add cordova-plugin-http

POST请求示例:

cordovaHTTP.post("https://google.com/", {
  id: 12,
  message: "test"
}, { Authorization: "OAuth2: token" }, function(response) {
  // prints 200
  console.log(response.status);
  try {
    response.data = JSON.parse(response.data);
    // prints test
    console.log(response.data.message);
  } catch(e) {
    console.error("JSON parsing error");
  }
  }, function(response) {
    // prints 403
    console.log(response.status);

    //prints Permission denied 
    console.log(response.error);
  });

没有OOB方法可以做到这一点。 您可以使用Cordova HTTP插件之类的东西将HTTP请求移动到本机端,它将继续在多个页面上执行,但是如果用户导航到另一个用户,则一旦返回响应,它将不知道如何处理响应页。

如果您的处理实际上是整个后台并且确实不需要任何JavaScript后处理,则可以尝试查看cordova-plugin-background-download之类的东西-它基本上在后台执行GET请求并将结果保存在你告诉它。 它仅支持GET,但即使整个应用程序都在后台也可以使用。

如果需要后处理或非GET请求,则可以考虑在插件的本机代码中实现逻辑(可能使用Cordova的HTTP插件之一来帮助实际的网络编组)。

如果Cordova能支持诸如服务人员之类的事情真是太棒了,我一直在这里和那里进行研究。 有一个适用于iOS的旧实现,但似乎不再起作用(如果不进行大量更改,它可能实际上就不可行): cordova-plugin-serviceworker

另一种选择是使您的应用成为带有某些iframe的伪SPA。 iframe处理您的请求和处理,并根据需要在内容iframe之间创建交互。 但这也不是小事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM