2009-03-31 23 views
7

Tôi đã tạo một ứng dụng web đơn giản cho iPhone, mỗi trang chỉ có 6 trang với một hình ảnh và tôi sử dụng chuyển đổi Cube để chuyển đổi giữa chúng, tất cả nội dung tĩnh.iPhone WebApp cache

Tôi cần tính năng này để hoạt động trên iPod Touch ngoại tuyến, tức là truy cập vào một lần, ngắt kết nối khỏi WiFi và sau đó có thể duyệt trang web tĩnh.

Tôi đang cố gắng thực hiện việc này bằng tính năng tệp kê khai HTML5, nhưng tôi đang làm sai điều đó?

tập tin Manifest của tôi:

CACHE MANIFEST 
index.html 
main.css 
main.js 
Images/Appointments_Page.png 
Images/backgroundStripes.png 
Images/button.png 
Images/button1.png 
Images/button1_clicked.png 
Images/button2.png 
Images/button2_clicked.png 
Images/button3.png 
Images/button3_clicked.png 
Images/button_clicked.png 
Images/CloseIcon.png 
Images/CloseIcon_pressed.png 
Images/Efficacy_Page.png 
Images/EfficacyGraph_Page.png 
Images/Graph_Icon.png 
Images/GraphIcon.png 
Images/GraphIcon_pressed.png 
Images/Home_Page.png 
Images/Tolerability_Page.png 
Images/TolerabilityTable_Page.png 
Images/WebClipIcon.png 
Parts/ButtonHandler.js 
Parts/PushButton.js 
Parts/setup.js 
Parts/StackLayout.js 
Parts/Transitions.css 
Parts/Transitions.js 
Parts/utilities.js 

đầu của tập tin HTML của tôi

<!DOCTYPE HTML> 
<html manifest="cache-manifest"> 

Trả lời

10

Hey I figured it out, để lại câu trả lời ở đây trong trường hợp nó giúp bất cứ ai khác.

Sự cố tôi gặp phải là máy chủ của chúng tôi (IIS6) đã từ chối phân phối tệp kê khai của tôi.

Tôi phải thêm loại MIME ".manifest" bằng "text/cache-manifest".

Kể từ đó nó đã được lưu vào bộ nhớ cache tốt, tất cả 40 tệp có kích thước từ 1kb đến 200kb.

Hy vọng điều này sẽ hữu ích.

+0

Hmm ... mã này có thể hữu ích. Cảm ơn bạn đã đăng bài :) – rpetrich

+0

Thông tin chính thức tại đây: http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/Client-SideStorage/chapter_10_section_2.html –

+0

Tôi biết điều này khá cũ, nhưng [doc chính thức] (http://www.w3.org/TR/html5/offline.html) là bởi W3 chứ không phải Apple. –

3

Tôi cũng đã viết một số lời khuyên về cách sử dụng Manifest tại địa chỉ: http://wecreategames.com/blog/?p=210

Những điều khác cần lưu ý: Bạn cần phải tải lại ứng dụng hai lần để có được nội dung mới của manifest, và bạn cần phải thay đổi nội dung thực tế của manifest để buộc tải lại các trang chứa (tôi làm điều này bằng cách thay đổi một chú thích # v.03 thành # v.04 hoặc một cái gì đó tương tự).

3

Là một lưu ý: Apple gợi ý:

"Các tập tin HTML mà tuyên bố file manifest ..... được tự động đưa vào bộ nhớ cache ứng dụng Bạn không cần phải thêm nó vào file manifest.."

(http://developer.apple.com/safari/library/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/OfflineApplicationCache/OfflineApplicationCache.html#//apple_ref/doc/uid/TP40007256-CH7-SW2)

Vì vậy, nó sẽ làm việc với lại "index.html" ra khỏi danh sách manifest.

Tom

Các vấn đề liên quan