2011-01-03 20 views
11

Tôi đã tạo một ứng dụng web bằng cách sử dụng tất cả liên kết được đề xuất và thẻ meta cho safari, ví dụ:Có thể buộc iphone/ipod cập nhật biểu tượng cảm ứng táo khi webapp được thêm vào màn hình chính không?

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
<meta name="apple-mobile-web-app-capable" content="yes" /> 
<meta name="apple-mobile-web-app-status-bar-style" content="black" /> 
<link rel="apple-touch-startup-image" href="/startup.png" /> 
<link rel="apple-touch-icon" href="/apple-touch-icon.png" /> 
<link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-ipad.png" /> 
<link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-iphone4.png" /> 

Tuy nhiên, vấn đề của tôi là nếu startup.png hoặc bất kỳ các-touch-biểu tượng quả táo tập tin hình ảnh được cập nhật trên máy chủ web, nó không có vẻ như iphone của người dùng hoặc ipod sẽ truy xuất các tập tin cập nhật một khi nó đã được lưu vào màn hình chủ của họ (tôi đoán nó được lưu trữ bằng cách nào đó hoặc một cái gì đó). Nó hoạt động để loại bỏ các ứng dụng web từ màn hình chủ và thêm lại nó. Nhưng có cách nào để ứng dụng biết rằng nó cần phải làm mới những hình ảnh này mà không yêu cầu người dùng xóa và thêm lại nó không?

Trả lời

13

Đã một vài năm kể từ khi câu hỏi này được hỏi/trả lời và tôi ở đây để báo cáo rằng điều này hiện có thể!

Trong các lần lặp lại mới hơn của iOS, biểu tượng Apple Touch được hiển thị trên màn hình chính được lưu trữ giống như bất kỳ phần nội dung nào khác từ trang web. Chỉ cần thay đổi tên của hình ảnh, nó sẽ buộc phím tắt màn hình chính làm mới biểu tượng vào lần tới khi phím tắt được khởi chạy.

Tuy nhiên, để phù hợp với quy ước đặt tên của Apple, bạn chỉ cần thêm biến URL vào tham chiếu bất cứ khi nào bạn muốn biểu tượng được tải xuống lại và tiếp tục gọi hình ảnh apple-touch-icon.png.

Điều tôi đã làm để tự động hóa vấn đề này (bằng PHP) sẽ thêm ngày/thời gian sửa đổi cuối cùng vào hình ảnh. Ví dụ:

<link rel="apple-touch-icon" href="apple-touch-icon.png?m=<?php echo filemtime('apple-touch-icon.png'); ?>" /> 

này kết quả đầu ra:

<link rel="apple-touch-icon" href="apple-touch-icon.png?m=1415832495" /> 

Bây giờ, bạn không cần phải làm bất cứ điều gì nhưng theo nghĩa đen ghi đè lên hình ảnh và mọi thứ khác sẽ xảy ra tự động. Khi bạn thay đổi hình ảnh, thời gian sửa đổi thay đổi và không khớp với những gì người dùng có trong bộ nhớ cache nữa, do đó, nó buộc tải xuống mới. Đơn giản!


OLD ĐÁP: tôi đã thực hiện một tấn của nghiên cứu này cố gắng tìm một cách. Thật không may, nó là không thể. Nó cần phải được loại bỏ và thêm lại vào màn hình chủ để sử dụng biểu tượng mới.

+0

Có một API riêng để thực hiện việc này, nhưng tôi không nghĩ rằng chúng tôi được phép sử dụng nó. Nếu bạn nhận thấy ứng dụng lịch có biểu tượng được cập nhật hàng ngày để thay đổi ngày. –

+0

Trong ứng dụng, có thể có cách để thực hiện việc này. Tuy nhiên, áp phích ban đầu hỏi xem liệu có thể thay đổi biểu tượng nếu bạn đánh dấu trang web vào màn hình chính chứ không phải từ ứng dụng. –

+0

Tôi sẽ miễn cưỡng chấp nhận 'không thể' làm câu trả lời. – TKTS

0

Tôi đã thấy các biểu tượng được cập nhật nhưng tôi không nghĩ rằng có thể ảnh hưởng đến bản cập nhật này theo bất kỳ cách nào. Tôi đã nhận thấy các biểu tượng cập nhật sau khi điện thoại đã được khởi động lại, nhưng tôi đã không nhìn đủ vào nó để nói bất cứ điều gì kết luận.

0

Việc xóa và thêm lại trang web/webapp vào màn hình chính có thể thậm chí không đủ. Tôi chỉ cố gắng để

  1. xóa các bookmark từ màn hình chính
  2. tải lại trang web trong safari
  3. thêm dấu trang vào màn hình chính

==> nó vẫn hiện biểu tượng cũ nó có vẻ đã lưu vào bộ nhớ cache ở đâu đó :(

+0

nó hoạt động trên iphone 5 của tôi nếu bạn lần đầu tiên chạm vào nút để đánh dấu vào màn hình chính, sau đó hủy, sau đó tải lại trang, sau đó nhấn lại nút để đánh dấu vào màn hình chính - bây giờ bạn sẽ thấy hình ảnh được cập nhật –

0

Trong ứng dụng web của tôi nếu tôi chỉ thay đổi tệp startup.png bằng tệp mới, lần đầu tiên tải lại ứng dụng từ màn hình chính cho thấy d hình ảnh. Đóng và mở lại ứng dụng sẽ hiển thị hình ảnh startup.png mới. iOS 4.2.1. Nhân tiện, cùng một biểu tượng cho biểu tượng.

2

Tôi vừa thử nghiệm một lý thuyết trên Iphone 5 và Ipad 2 và nó hoạt động cho cả hai. Tương tự như favicon, bạn có thể buộc favicon mới kéo bằng cách thay đổi href. Thay vì href="/apple-touch-icon.png" Tôi đã sử dụng href="/apple-touch-icon.png?ver=1.1" và nó đã kéo biểu tượng mới khi trang web được truy cập (mà không xóa và thêm lại vào màn hình chính).

+0

Điều này giải quyết vấn đề và cũng hoạt động với apple-touch-startup-image cũng có cùng các vấn đề như apple-touch-icon. (Được xác nhận trong iOS 8) – Jay

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