我正在开发一个混合应用程序。
它将从我的服务器带来内容,我将使用应用程序缓存来解决性能和流量成本问题。
即使我使用应用程序缓存,用户也必须在第一次打开网页时下载网页。
我想在将应用上传到google play和apple app store之前存储应用缓存。
然后,如果打包后页面未更新,应用程序将仅检查清单文件。
我可以将应用程序缓存存储在混合应用程序中吗?如果那样,我在哪里可以获取操作方法文档,或者我该如何操作?
提前谢谢!
p.s:我将使用phonegap打包webapp。
答案 0 :(得分:0)
我觉得最好回答迟到,我猜!
答案是肯定的,这是可能的。我在应用程序商店中有两个正在执行此操作的应用程序。它工作得很合理,虽然这是一个痛苦的过程(主要是因为appcache is a douche),我们正在使用自定义版本的Cordova来实现它。
以下是对如何实现这一点的大致了解:
拥有Cordova index.html
指向的空本地存根startPage
。
在您的网页浏览中实施webViewDidFinishLoad
。它将做两件事 - 在开始时打开appcache页面并将cordova.ios.js
注入后续页面。像这样:
- (void)webViewDidFinishLoad:(UIWebView*)webView {
if(!_initialPageLoaded) {
_initialPageLoaded = YES;
NSURL *url = [NSURL URLWithString: @"https://mywebsite.com/app/"];
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:ful];
[self.webView loadRequest:req];
return;
}
NSString* jsPath = [[NSBundle mainBundle] pathForResource:@"www/cordova.ios" ofType:@"js"];
NSString* c = [NSString stringWithContentsOfFile:jsPath encoding:NSUTF8StringEncoding error:nil];
[webView stringByEvaluatingJavaScriptFromString:c];
return [super webViewDidFinishLoad:webView];
}
利润!
请注意,cordova.ios.js文件是应用程序的本地文件,因此请勿将其保留在您的网络服务器上。