我正在使用Cordova(3.4)开发移动应用程序.我的核心应用程序文件嵌入在我的应用程序存档(.apk或.ipa)中,并且必须从我的服务器检索一些文件(js/html/css).因此,如果我希望我的应用程序可以脱机使用,我需要使用appcache来处理这些文件.
我appcache.manifest的一个示例:
CACHE MANIFEST
# version 7
NETWORK:
*
http://*
https://*
CACHE:
# Message module
http://my.server.ip/module/routes.json
http://my.server.ip/module/css/style.css
http://my.server.ip/module/js/controller.js
http://my.server.ip/module/js/service.js
...
Run Code Online (Sandbox Code Playgroud)
我的index.html(嵌入到我的应用中):
<!DOCTYPE html>
<html lang="en" xmlns:ng="http://angularjs.org" id="ng-app" ng-app="app"
manifest="http://my.server.ip/tmp_appcache.manifest">
...
<body>
<script>
document.addEventListener("deviceready", function(e) {
var appCache = window.applicationCache;
alert('device ready');
console.log('appCache', appCache);
// Fired after the first cache of the manifest.
appCache.addEventListener('cached', function(event) {
console.log(event);
alert('Appcache OK');
}, false);
appCache.addEventListener('UpdateReady', function(event) {
console.log(event);
alert('Appcache Reloaded');
}, false);
appCache.addEventListener('error', function(event) {
console.log(event);
alert('Appcache ERROR');
}, false);
appCache.addEventListener('checking', function(event) …Run Code Online (Sandbox Code Playgroud) 我尝试从 AngularJS 应用程序请求 Google Timezone API。
\n\n但是当我提出请求时,我在预检请求中收到此错误:
\n\nXMLHttpRequest cannot load https://maps.googleapis.com/maps/api/timezone/json?location=48.8709,2.3561×tamp=14912286400&key=MY_KEY. Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n我尝试通过设置标头来禁用预检请求Content-Type: \'text/plain\',但始终存在预检请求。
您认为上述错误是由预检请求引起的还是您认为我应该看看另一个方向?
\n\n提前致谢
\n\n编辑:我知道如何在我的服务器上启用 CORS,这不是重点。我想要的是从我的 AngularJS 应用程序访问 Google API,而不在我的服务器上创建 \xc3\xa0 WS(如果可能的话)。如果我别无选择,我就会这么做,但在这种情况下,我知道该怎么做。
\n\n回答:感谢@Sebas,我解决了window.fetch()API 的问题。这在 IE 上不起作用,但这里有一个很棒的 polyfill: https: //github.com/github/fetch。\n我不知道这是否是解决我的问题的最佳选择,但它确实有效。
我尝试使用 jackson-dataformat-csv 创建 CSV 文件,如本教程中所述(杰克逊注释方法)中所述。
这是我的 Csv 行的定义:
@JsonPropertyOrder(value = {"foo", "bar"})
public class MyDataCsv implements Serializable {
private String foo;
private String bar;
// getter & setter
//...
}
Run Code Online (Sandbox Code Playgroud)
这就是我使用 Jackson 构建 CSV 的方法:
private void generateCsv(OutputStream o, List<MyDataCsv> data) {
CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(MyDataCsv.class).withHeader();
ObjectWriter objectWriter = mapper.writer(schema);
objectWriter.writeValue(o, data);
}
Run Code Online (Sandbox Code Playgroud)
在我的输出 CSV 中,我得到:
| foo | bar |
+------+------+
| foo1 | bar1 |
| foo2 | bar2 |
| …Run Code Online (Sandbox Code Playgroud)