2013-04-15 5 views
1

Я разрабатываю гибридное приложение.Можно ли хранить кеш приложения HTML5 при упаковке моего гибридного приложения?

Он доставит содержимое с моего сервера, и я буду использовать кеш приложения для проблем с производительностью и стоимостью трафика.

Несмотря на то, что я использую кэш приложений, пользователям придется загружать веб-страницы, когда они открывают страницы в первый раз.

Я хочу сохранить кэш приложения перед загрузкой приложения в магазин приложений Google Play и Apple.

Затем приложение будет проверять файл манифеста только в том случае, если страница не обновляется после упаковки.

Могу ли я хранить кеш приложения в гибридном приложении? Если тогда, где я могу получить практические документы или как это сделать?

Спасибо заранее!

p.s: Я упакую webapp с телефонной связью.

ответ

0

Лучше ответить поздно, чем никогда, я думаю!

Ответ да, это возможно. У меня есть два приложения в магазине приложений, которые это делают. Он работает хорошо, хотя это болезненный процесс (главным образом потому, что appcache is a douche), и мы используем индивидуальную версию Кордовы, чтобы сделать это.

Вот примерное представление о том, как можно реализовать это:

  • Есть пустой местный окурок 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 является локальным для приложения, поэтому не храните его на своем веб-сервере.