Skip to content

Commit d2ae8de

Browse files
committed
feat: offlineCache cachePolicy
1 parent 8c9bd39 commit d2ae8de

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

src/https/request.android.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,11 +496,16 @@ export function createRequest(opts: HttpsRequestOptions, useLegacy: boolean = tr
496496
case 'onlyCache':
497497
cacheControlBuilder = cacheControlBuilder.onlyIfCached();
498498
break;
499+
case 'offlineCache':
500+
cacheControlBuilder = cacheControlBuilder.onlyIfCached().maxStale(Number.MAX_VALUE, java.util.concurrent.TimeUnit.SECONDS);
501+
break;
499502
case 'ignoreCache':
500503
cacheControlBuilder = cacheControlBuilder.noCache();
501504
break;
502505
}
503506
request.cacheControl(cacheControlBuilder.build());
507+
} else if (opts.nativeCachePolicy) {
508+
request.cacheControl(opts.nativeCachePolicy);
504509
}
505510

506511
// const methods = {

src/https/request.ios.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { File, ImageSource, Utils } from '@nativescript/core';
22
import { CacheOptions, HttpsFormDataParam, HttpsRequest, HttpsRequestOptions, HttpsResponse, HttpsSSLPinningOptions, HttpsResponseLegacy as IHttpsResponseLegacy } from '.';
3-
import { getFilenameFromUrl, HttpResponseEncoding, parseJSON } from './request.common';
3+
import { HttpResponseEncoding, getFilenameFromUrl, parseJSON } from './request.common';
44
export { HttpResponseEncoding, addInterceptor, addNetworkInterceptor } from './request.common';
55

66
let cache: NSURLCache;
@@ -388,13 +388,16 @@ export function createRequest(opts: HttpsRequestOptions, useLegacy: boolean = tr
388388
case 'noCache':
389389
manager.setDataTaskWillCacheResponseBlock((session, task, cacheResponse) => null);
390390
break;
391+
case 'offlineCache':
391392
case 'onlyCache':
392393
manager.requestSerializer.cachePolicy = NSURLRequestCachePolicy.ReturnCacheDataDontLoad;
393394
break;
394395
case 'ignoreCache':
395396
manager.requestSerializer.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData;
396397
break;
397398
}
399+
} else if (opts.nativeCachePolicy) {
400+
manager.requestSerializer.cachePolicy = opts.nativeCachePolicy;
398401
} else {
399402
manager.requestSerializer.cachePolicy = NSURLRequestCachePolicy.UseProtocolCachePolicy;
400403
}

0 commit comments

Comments
 (0)