Giải pháp ứng dụng web tiến bộ cho IOS là gì [đã đóng]


79

Tôi đã tự hỏi giải pháp của ứng dụng web tiến bộ cho thiết bị IOS là gì vì SAFARI trình duyệt mặc định của họ chưa hỗ trợ các ứng dụng web tiến bộ. Thay thế cho các đối tác IOS là gì?


1
Xin chúc mừng câu hỏi đầu tiên của bạn. Như bạn có thể biết, một trong nhiều điều kiện tiên quyết cho Ứng dụng web tiến bộ (PWA) là hỗ trợ cho nhân viên dịch vụ trong trình duyệt. Thật không may, Safari không hỗ trợ Service worker nên các lựa chọn thay thế duy nhất là các ứng dụng gốc hoặc một trang web thuần túy.
José Luis

1
Theo dõi trên @ JoséLuis một PWA phải tuân theo nguyên tắc cải tiến liên tục và do đó tương thích ngược trên Safari & iOS. Điều này có nghĩa là các tính năng cốt lõi vẫn có thể sử dụng được và ứng dụng được cải tiến dần dần khi các tính năng mới được cung cấp trong trình duyệt hoặc hệ điều hành.
Kevin Farrugia

2
Xem câu trả lời của tôi dưới đây. Tôi đã viết một bài báo kêu gọi Apple. Nó gây xôn xao trên twitter và tin tức hacker. Một tuần sau, cuối cùng họ cũng bắt đầu phát triển nó!
Greg Blass

2
Cuối cùng, Apple đã bổ sung hỗ trợ cho nhân viên dịch vụ tại TP của họ. Bạn có thể đọc thêm về hỗ trợ PWA của safari tại đây medium.com/awebdeveloper/…
aWebDeveloper

1
Thực sự phải nói rằng đóng nó quá rộng là quá ngu ngốc. Như nghiêm túc! Tại sao? Tại sao bạn lại đóng một câu hỏi quan trọng như thế này? Chỉ cần thổi bay tâm trí của tôi.
Greg Blass

Câu trả lời:


97

Xin lưu ý rằng "Các trình duyệt hỗ trợ Ứng dụng web tiến bộ" không phải là một thuật ngữ thực, bản thân PWA là một tập hợp các tính năng mà ứng dụng web có thể cung cấp cho người dùng. Vì vậy, nó không chỉ về Service Worker và App Manifest.

Kiểm tra: Danh sách kiểm tra PWA cơ bản .

Dưới đây là những gì bạn có thể làm để đạt được PWA trên iOS / Safari tại thời điểm câu trả lời này được tạo:

  • Trang web được phân phát qua HTTPS ✅
  • Các trang đáp ứng trên máy tính bảng và thiết bị di động ✅
  • URL bắt đầu (ít nhất) tải khi ngoại tuyến 🚫
  • Siêu dữ liệu được cung cấp cho Thêm vào màn hình chính ✅❗️
  • Lần tải đầu tiên nhanh chóng ngay cả trên 3G ✅
  • Trang web hoạt động trên nhiều trình duyệt ✅
  • Các chuyển đổi trang không cảm thấy như chúng bị chặn trên mạng ✅
  • Mỗi trang có một URL ✅

Như bạn có thể thấy, hầu hết mọi thứ đều hoạt động, ngay cả khi trang của bạn không thể hoạt động ngoại tuyến trên iOS / Safari, thì việc "nâng cấp" ứng dụng web của bạn thành PWA vẫn có lợi ích rất lớn.

Những gì bạn thực sự muốn không phải là tiêu đề hoa mỹ "Ứng dụng web tiến bộ" mà là một ứng dụng web tốt mang lại trải nghiệm và tính năng tốt cho người dùng. Đây là một cuộc hành trình mà bạn có thể hoàn thành nó bằng từng phần nhỏ, đó là lý do tại sao nó được gọi là "Tiến bộ".

Lưu ý về "Thêm vào màn hình chính: Safari có thông số kỹ thuật riêng cho" Biểu tượng màn hình chính "được gọi apple-mobile-web-app-capabletrong thẻ meta. Trình tạo tệp kê khai ứng dụng web có dự phòng cho iOS bằng cách sử dụng thẻ meta này.


7
Với các tính năng được đề cập ở trên và không có 'Nhân viên dịch vụ', bạn chỉ đang phát triển một ứng dụng web nhanh và đáp ứng! Ứng dụng gốc còn nhiều hơn nữa !!
Abhishek Nalin

1
sử dụng downvote hỏi về iOS câu trả lời là quá chung chung
Fareed Alnamrouti

Siêu dữ liệu được cung cấp cho Thêm vào màn hình chính ✅❗️ Không hoạt động. Bạn có thể xây dựng?
Profer

76

CHỈNH SỬA 3:

Nhân viên dịch vụ đã xuất xưởng trong Safari dành cho iOS vào ngày 30 tháng 3 năm 2018!

CHỈNH SỬA 2:

Một nhà phát triển của Apple tên là Ricky Mondello đã tweet điều này vào ngày 24 tháng 1 năm 2018:

https://twitter.com/rmondello/status/956256845311590400

"iOS 11.3 và macOS 10.13.4 bao gồm Service worker - một đặc điểm kỹ thuật mạnh mẽ cho phép các tập lệnh nền để cấp nguồn cho các ứng dụng web ngoại tuyến. iOS 11.3 cũng tham vấn Web App Manifest khi thêm ứng dụng web vào màn hình chính."

Tuyệt vời!

Chưa có thông báo đẩy nào, nhưng vẫn là tin tức tuyệt vời.

BIÊN TẬP:

Tôi đã viết một bài báo kêu gọi Apple về chủ đề:

https://m.phillydevshop.com/apples-refusal-to-support-progressive-web-apps-is-a-serious-detriment-to-future-of-the-web-e81b2be29676

Nó đã được đăng lên tin tức hacker và có một số thông tin tốt trên Twitter. Một tuần sau, họ bắt đầu phát triển nó. Vì vậy - hãy theo dõi, có vẻ như cuối cùng cũng đã đến!


CÂU TRẢ LỜI GỐC:

"Vì vậy, nó không chỉ về Service Worker và App Manifest."

Theo ý kiến ​​của tôi, đó chính xác là những gì thực sự về PWA - nhân viên dịch vụ. Đó là những gì cho phép bạn làm tất cả những điều tuyệt vời mà PWA có thể làm được. Đường cơ sở đã có thể đạt được từ rất lâu rồi, và mặc dù về mặt kỹ thuật google đã thiết lập chúng như một phân loại đường cơ sở, thì những thứ đó không thực sự tạo nên PWA. Nếu không, nó chỉ là một ứng dụng web đáp ứng thông thường trong sách của tôi.

Dưới đây là danh sách những điều bạn vẫn không thể làm với safari di động do Apple từ chối hỗ trợ chúng (vì họ sẽ mất tiền từ cửa hàng ứng dụng):

  • Tạo màn hình tải ứng dụng
  • Sử dụng thông báo đẩy
  • Thêm hỗ trợ ngoại tuyến
  • Tạo giao diện người dùng ứng dụng ban đầu để tải ngay lập tức
  • Cài đặt nhanh chóng vào màn hình chính thông qua hộp thoại do trình duyệt hướng dẫn

Câu trả lời được chấp nhận thực sự vẽ nên bức tranh sai lầm ở đây. Tôi đã đẩy trải nghiệm giống táo 'bản địa' trong trò chơi safari trên di động đến giới hạn của nó và nó vẫn khá tệ. Tôi đã gặp nhiều vấn đề với chế độ toàn màn hình của safari di động và Apple không quan tâm đến chúng. Nó được đối xử như một công dân hạng hai vì nó không tạo ra tiền như cửa hàng ứng dụng.

Bạn sẽ nhận thấy rằng nếu bạn thêm trang web di động dựa trên phản ứng / redux mới và tuyệt vời của Twitter vào màn hình chính của mình trên iOS, nó sẽ không mở ở chế độ toàn màn hình. Tôi nghi ngờ đó là những lý do tương tự mà tôi tìm thấy - lỗi rất nhiều, không có ai trong nhóm của Apple làm việc với chúng.

Màn hình tải từng có thể có ở chế độ toàn màn hình của iOS có sẵn trong tệp kê khai ứng dụng web đã ngừng hoạt động một cách bí ẩn, không có bình luận nào từ Apple trên diễn đàn của họ về các bài đăng về chủ đề này. Và việc phải nói với người dùng, "Ồ này, chỉ cần nhấp vào chia sẻ, sau đó trượt qua 'Thêm vào Màn hình chính' là một cách khủng khiếp để thực hiện mọi thứ.

Đó là một tình trạng đáng buồn. Danh sách trong câu trả lời được chấp nhận hiện tại thực sự phải được gọi là "Danh sách ứng dụng web đáp ứng đường cơ sở".

Và để trả lời câu hỏi ở đây - không, không có giải pháp thay thế và bạn không thể làm gì cả. Bạn phải chơi trò chơi của Apple, trả 100 đô la để có quyền truy cập vào cửa hàng ứng dụng và học một ngôn ngữ lập trình hoàn toàn khác và phức tạp hơn, đồng thời giữ một cơ sở mã hoàn toàn riêng biệt.

Tôi vừa dành 6 tháng để học React Native cho một dự án khách hàng và nó thật tuyệt vời. Tôi rất muốn khuyên bạn điêu đo. Bạn có thể tạo các ứng dụng gốc thực sự bằng JavaScript và chia sẻ cơ sở mã của mình giữa iOS và Android.

Nói rõ hơn, tôi không chống Apple. Tôi sử dụng iPhone và phát triển trên máy Mac. Nhưng khía cạnh này trong chiến lược kinh doanh của họ chắc chắn là một điều đáng xấu hổ.


1
Tôi thấy Swift / Xcode là ngôn ngữ / IDE dễ sử dụng nhất trên thị trường. Họ đã xây dựng một ngôn ngữ nhà phát triển hiện đại và một mô hình mới, lập trình hướng giao thức, giải quyết nhiều vấn đề liên quan đến nhiều tính kế thừa. Thực tế là họ không cố gắng mở rộng việc sử dụng nó ra ngoài các sản phẩm của chính họ là một điều đáng tiếc, nhưng nếu gọi nó phức tạp hơn TypeScript / JavaScript sẽ gây hiểu lầm. Tôi nghĩ TypeScript là một chiếc khăn rằn xấu xí mà họ đặt trên một thứ ngôn ngữ xấu xí. Thay vào đó, tôi ước các trình duyệt web nói nhanh hơn.
Ryan Dines

Ai đó đã đề cập đến điều tương tự với tôi trong bài báo của tôi. Tôi đã chỉnh sửa nó để nói 'dài dòng' hơn. Nhưng bạn nói đúng - tôi có thể thiên vị đến từ web. Nhưng các nhóm Facebook đã có thể lặp lại trên web nhanh hơn gấp 5 lần so với các ứng dụng gốc, đó là lý do tại sao họ tạo ra React Native - vì vậy tôi nghĩ nó có phần xứng đáng.
Greg Blass
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.