2011-12-25 47 views
42

Tôi đang cố gắng tìm ra API Javascript nào tôi có thể sử dụng để đạt được hỗ trợ cho Mobile Safari trở lại iOS2. Tôi đã không tìm thấy danh sách ở bất kỳ nơi nào cho thấy phiên bản của tàu Safari Mobile với mỗi phiên bản iOS mới. Tôi đang tìm một danh sách toàn diện quay trở lại iOS2.Phiên bản safari di động nào đi kèm với mỗi phiên bản iOS?

Cảm ơn!

[Chỉnh sửa: Có, tôi biết và yêu thích tính năng phát hiện. Tuy nhiên, tôi có một bộ trình duyệt được nhắm mục tiêu mà tôi cần hỗ trợ và tôi chỉ cần xác minh rằng những hạn chế mà tôi đã cung cấp bao gồm đối tượng mục tiêu của mình và tôi không cần phải cung cấp thêm những hạn chế có thể gây rắc rối.]

Trả lời

70

Vì đây là lần truy cập hàng đầu trên Google nên chúng tôi nên bắt đầu danh sách tại đây. Tôi sẽ làm cho câu trả lời này trở thành một wiki cộng đồng. Nhân tiện, tôi sẽ lấy chúng từ chuỗi tác nhân người dùng của thiết bị. Phiên bản trình duyệt phụ thuộc phiên bản iOS, KHÔNG phụ thuộc vào thiết bị.Nhưng khi điện thoại không hỗ trợ các phiên bản iOS cao hơn, nó được liệt kê:

3.2.2 - Mobile Safari 4.0.4 
4.3.3 - Mobile Safari 5.02 - iPhone 3g 
5.0  - Mobile Safari 5.1 
5.1  - Mobile Safari 5.1 
6.0  - Mobile Safari 6.0 - iPhone 3gs 
7.1  - Mobile Safari 7.1 - iPhone 4 
8.3  - Mobile Safari 8.0 
9.2.1 - Mobile Safari 9.0 - iPhone 4s 
11.2.5 - Mobile Safari 11.0 
+8

Safari có được cập nhật không? Nếu vậy, nó sẽ là một ý tưởng cho cả hai danh sách các phiên bản cổ phiếu đi kèm với thiết bị, cũng như bản cập nhật cuối cùng hoặc phiên bản Safari được hỗ trợ gần đây nhất cho mỗi thiết bị/IOS? – Jeroen

+0

Theo như tôi biết, bản cập nhật Safari chỉ được gửi dưới dạng bản cập nhật iOS. –

2

Thay vì phát hiện thiết bị hoặc hệ điều hành, bạn nên thực hiện phát hiện tính năng - nó sẽ cung cấp trải nghiệm phong phú hơn và bạn có thể cung cấp mã tùy chỉnh để thêm chức năng mà phiên bản cụ thể không hỗ trợ. Bằng cách này, bạn sẽ cung cấp cách hỗ trợ vượt ra ngoài các thiết bị cụ thể mà bạn đang nhắm mục tiêu (và thường kết thúc dễ dàng hơn thay vì phân nhánh mã của bạn cho một tác nhân người dùng cụ thể, bạn sẽ hỗ trợ lại cho việc triển khai j cũ hơn bằng cách cung cấp hỗ trợ về phía trước trên cơ sở có điều kiện).

Ví dụ: phiên bản mới nhất của máy tính để bàn & Safari trên thiết bị di động không cung cấp chức năng .bind() để ràng buộc ngữ cảnh để đóng. Điều này có thể được phát hiện và xử lý bằng cách sử dụng Function.prototype.bind và nếu nó không tồn tại, cung cấp triển khai cung cấp chức năng cho các trình duyệt cũ hơn. Sử dụng thư viện như http://www.modernizr.com/ sẽ hỗ trợ rất nhiều cho nỗ lực này.

đó được cho biết có một số sự kiện DOM cụ thể mà được gắn với một số phiên bản của iOS: http://developer.apple.com/library/safari/navigation/#section=Libraries&topic=Safari%20DOM%20Additions%20for%20iOS

+0

có! Tính năng phát hiện quan trọng và là cách chính xác để kiểm tra chức năng. Tuy nhiên, tôi đang cố gắng để cắt một tính năng từ jQuery cho phiên bản 1.8 http://bugs.jquery.com/ticket/10996 và tôi có thể loại bỏ các đoạn mã lớn nếu tôi có thể xác minh rằng getBoundingClientRect tồn tại trong tất cả các trình duyệt mà jQuery hỗ trợ. Ví dụ, bạn sẽ không tính năng phát hiện document.createElement(), phải không? Tôi đang cố gắng tìm hiểu xem getBoundingClientRect có đủ trưởng thành để không còn đảm bảo một bài kiểm tra hỗ trợ cho nó và 4 bài kiểm tra hỗ trợ khác có thể là dự phòng không cần thiết không cần thiết. Cảm ơn! –

+0

Để biết thêm một chút ngữ cảnh, đây là yêu cầu kéo tôi đã gửi để đảm bảo câu hỏi. https://github.com/jquery/jquery/pull/642 –

+0

aah tôi hiểu rồi. tôi không nghĩ rằng danh sách bạn đang tìm kiếm tồn tại theo một cách có ý nghĩa. đây có thể là một trong những thứ mà bạn phải tải xuống các SDK cũ và chạy nó trong trình mô phỏng. hoặc, vì phiên bản di động được cho là giống hệt với bản dựng trên máy tính để bàn (ví dụ: safari 5.1 của 10,7 được cho là giống với Safari Safari 5.1), bạn có thể thực hiện một số ánh xạ. Không có nghĩa là bình luận của tôi là snarky, btw :) – tkone

0

Nếu có của API cụ thể mà bạn đang xem xét, caniuse.com là một nguồn lực lớn cho việc tìm kiếm ra cách xa API có hỗ trợ.

Chúc bạn may mắn!

3

Tôi không thể tìm thấy danh sách toàn diện. Điều tốt nhất mà tôi đã tìm thấy cho đến nay là một số tài liệu Safari từ Apple:

http://developer.apple.com/library/IOs/#documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html

Chúc may mắn!

[Cập nhật]

Trong khi điều này vẫn không trả lời câu hỏi đó ít nhất kể khi WebKit thêm hỗ trợ cho getBoundingClientRect() trong Febuary của 2009.

http://trac.webkit.org/changeset/40837

+0

Điều này thực sự hiển thị chuỗi tác nhân người dùng cho phiên bản iOS, mà tôi có thể liên kết lại với phiên bản của webkit. Điều này là đủ tốt! –

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