Điện thoại di động hiện chiếm hơn một nửa lưu lượng truy cập web và các ứng dụng web cho phép người dùng thực hiện mọi việc trong trình duyệt mà các ứng dụng gốc đối thủ, nhưng có một vấn đề: chất lượng của các kết nối và thiết bị thay đổi ồ ạt trên toàn thế giới.
Phục vụ cả hai cho người dùng với các kết nối nhanh chóng ở Seoul và người dùng ở nông thôn Ấn Độ trên một chiếc điện thoại đã lỗi thời, là thách thức về khả năng sử dụng mới nhất và các ứng dụng web tiến bộ là giải pháp.
PWA sử dụng cải tiến lũy tiến để tải nội dung quan trọng nhất trước tiên, sau đó thêm các tính năng hiển thị và chức năng theo yêu cầu, nghĩa là tất cả người dùng của bạn có được trải nghiệm cốt lõi tương tự càng nhanh càng tốt. Nếu bạn muốn đạt được đối tượng rộng nhất có thể, PWA là cách để đi.
Mặc dù các ứng dụng web tiến bộ mang lại rất nhiều lợi ích và chức năng cho Web, nhưng họ không yêu cầu viết lại toàn bộ ứng dụng của bạn. Bất kỳ ứng dụng nào cũng có thể được chuyển đổi thành PWA bằng cách thêm một vài lớp thêm vào nó.
Để có kết quả tốt nhất, bạn sẽ muốn nhấn mạnh mạnh vào màn trình diễn ngay từ đầu - nhưng đó là sự thật của bất kỳ ứng dụng web nào. Ở đây, chúng tôi sẽ đi qua các bước để làm cho ứng dụng của bạn tiến bộ.
Nếu bạn muốn xây dựng một trang web chạy trơn tru, hãy đảm bảo web hosting là điểm trên và sử dụng một đàng hoàng người tạo ra trang web .
Hãy trung thực: dù sao bạn cũng nên làm điều này. SSL thêm một lớp bảo mật thêm vào web, giúp người dùng của bạn cảm thấy an toàn trong việc sử dụng trang web của mình. Với PWAS, HTTPS rất cần thiết để sử dụng nhân viên phục vụ và cho phép cài đặt màn hình chính. Bạn có thể mua chứng chỉ SSL từ công ty đăng ký tên miền của bạn với chi phí nhỏ và sau đó định cấu hình thông qua dịch vụ lưu trữ của bạn.
Vỏ ứng dụng của bạn là điều đầu tiên tải - điều đầu tiên mà người dùng nhìn thấy. Nó sẽ tồn tại hoàn toàn trong tài liệu HTML chỉ mục của bạn, với CSS nội tuyến, để đảm bảo nó xuất hiện nhanh nhất có thể và người dùng của bạn không nhìn chằm chằm vào màn hình trắng lâu hơn mức cần thiết. Vỏ ứng dụng tạo thành một phần của mô hình tăng cường tiến bộ. Ứng dụng của bạn sẽ cung cấp cho nội dung người dùng càng sớm càng tốt, và sau đó dần dần nâng cao nó như tải nhiều dữ liệu hơn (có khả năng JavaScript).
Ví dụ dưới đây được lấy từ một ứng dụng React.js. Người dùng được trình bày với một phác thảo của ứng dụng và một chỉ báo đang tải trong index.html. Sau đó, một khi JavaScript tải và phản ứng khởi động, ứng dụng đầy đủ được hiển thị trong vỏ.
& lt;! - index.html - & gt;
& lt; body & gt;
& lt; div id = "root" & gt;
& lt; div id = "container" & gt;
& lt; div class = "bên trong-container" & gt;
& lt; div id = "tiêu đề" & gt;
& lt; img src = "/ tài sản / icon.png" alt = "logo" / & gt;
& lt; h1 & gt; chat & lt; / h1 & gt;
& lt; / div & gt;
& lt; div id = "tải-container" & gt;
& lt; img src = "/ tài sản / icon.png" alt = "logo" id = "loader" / & gt;
& lt; / div & gt;
& lt; / div & gt;
& lt; / div & gt;
& lt; / div & gt;
& lt; / body & gt;
// index.js.
Reactdom.render (
& lt; ứng dụng / & gt ;,
tài liệu.getelementbyId ('root')
);
Để chạm vào phổ đầy đủ Goodies PWA (thông báo đẩy, bộ nhớ đệm, nhắc nhở cài đặt), bạn sẽ cần một công nhân dịch vụ.
May mắn thay, chúng khá dễ dàng để thiết lập. Dưới đây, trước tiên chúng tôi kiểm tra xem trình duyệt của người dùng có hỗ trợ nhân viên dịch vụ không. Sau đó, nếu vậy, chúng ta có thể tiến lên phía trước với việc đăng ký tệp công nhân dịch vụ, ở đây được gọi là DỊCH VỤ-WORLANER.JS. . Lưu ý rằng bạn không cần bất cứ thứ gì đặc biệt bên trong tệp đó tại thời điểm này - nó có thể trống.
Tuy nhiên, trong ví dụ dưới đây, chúng tôi chỉ ra cách nhấn vào ba sự kiện LifeCycle công nhân dịch vụ chính. Đây là 'cài đặt', khi người dùng lần đầu truy cập trang của bạn; 'Kích hoạt', ngay trước khi đăng ký hoàn tất; và 'Fetch', khi ứng dụng thực hiện yêu cầu mạng. Cái cuối cùng có liên quan đến khả năng lưu trữ và ngoại tuyến.
& lt; script & gt;
if ('ServiceWorker' trong Navigator) {
window.addeventlistener ('tải', hàm () {
Navigator.ServiceWorker.Register ('DỊCH VỤ-WORDER.JS'). Sau đó (chức năng (đăng ký) {
// Đăng ký đã thành công
Console.log ('đã đăng ký!');
}, chức năng (err) {
// Đăng ký thất bại :(
Console.log ('Đăng ký dịch vụ thất bại:', err);
}). Bắt (hàm (err) {
Console.log (err);
});
});
} other {
Console.log ('Nhân viên phục vụ không được hỗ trợ');
Không thể
& lt; / script & gt;
// lao động dịch vụ.js
tự.addeventlistener ('cài đặt', hàm () {
Console.log ('Cài đặt!');
});
self.addeventlistener ("Kích hoạt", sự kiện = & gt; {
Console.log ('Kích hoạt!');
});
self.addeventlistener ('Fetch', chức năng (sự kiện) {
Console.log ('Fetch!', Event.Request);
});
Nhân viên phục vụ cho phép người dùng của bạn nhận thông báo đẩy qua API đẩy Web. Để truy cập nó, bạn có thể chạm vào self.registration.pushmanager. từ trong tập tin công nhân dịch vụ của bạn. Kể từ khi gửi thông báo đẩy phụ thuộc rất nhiều vào thiết lập phụ trợ của bạn, chúng tôi sẽ không đi sâu vào đây.
Nếu bạn đang bắt đầu một ứng dụng từ đầu, dịch vụ FireBase của Google đi kèm với tin nhắn đám mây của FireBase cho các thông báo đẩy tương đối không đau (hãy nhớ: Hãy chắc chắn rằng bạn giữ cho các tệp thiết kế của mình an toàn trong lưu trữ đám mây) . Mã dưới đây cho thấy cách đăng ký thông báo đẩy qua API đẩy.
Navigator.ServiceWorker.Real.Shen (chức năng (đăng ký) {
Nếu (! Đăng ký.PushManager) {
cảnh báo ('không hỗ trợ thông báo đẩy.');
trả lại sai;
Không thể
// Để đăng ký `thông báo đẩy` từ Trình quản lý đẩy
Đăng ký.pushManager.Subscribe ({
uservisibleonly: True // Luôn hiển thị thông báo khi nhận được
})
.Thững (chức năng (đăng ký) {
Console.log ('đăng ký.');
})
.catch (chức năng (lỗi) {
Console.log ('Lỗi đăng ký:', lỗi);
});
})
Để làm cho ứng dụng của bạn có thể cài đặt, bạn cần bao gồm một Manifest.json. trong thư mục gốc của ứng dụng. Bạn có thể nghĩ về điều này như một mô tả về ứng dụng của bạn, tương tự như những gì bạn có thể gửi đến App Store. Nó bao gồm các biểu tượng, một màn hình giật gân, tên và mô tả.
Ngoài ra còn có một số cấu hình về cách ứng dụng của bạn xuất hiện khi nó được khởi chạy từ Màn hình chính của người dùng: Bạn có muốn hiển thị thanh địa chỉ trong trình duyệt hay không? Bạn muốn thanh trạng thái màu gì? Và như thế. Lưu ý rằng một thích hợp Manifest.json. nên bao gồm một phổ đầy đủ kích thước biểu tượng cho các thiết bị khác nhau. Mã dưới đây là bản xem trước của một số thuộc tính kê khai của bạn có thể bao gồm.
{
"Short_name": "Trò chuyện",
"Tên": "Trò chuyện",
"Biểu tượng": [
Đồn là
"SRC": "/ Tài sản / icon.png",
"Kích cỡ": "192x192",
"Loại": "Hình ảnh / PNG"
Không thể
],
"start_url": "/? utm_source = homencreen",
"Background_color": "# E05A47",
"Theme_color": "# E05A47",
"Hiển thị": "độc lập"
}
Khi người dùng truy cập PWA với nhân viên dịch vụ và tệp kê khai, Chrome sẽ tự động nhắc chúng cài đặt nó vào màn hình chính của họ, được đưa ra như sau: Người dùng phải truy cập trang web hai lần, với năm phút giữa lượt truy cập.
Ý tưởng ở đây là đợi cho đến khi người dùng thể hiện sự quan tâm đến ứng dụng của bạn, sau đó yêu cầu họ làm cho nó trở thành một vật cố của thiết bị của họ (điều này tương phản mạnh với phương pháp ứng dụng gốc, yêu cầu khoản đầu tư đó lên phía trước).
Nhưng có thể có trường hợp bạn muốn hiển thị dấu nhắc cài đặt trong các tình huống khác nhau, chẳng hạn như sau khi người dùng thực hiện một hành động hữu ích cụ thể. Để làm như vậy, chúng ta chặn trước đóstallprompt. sự kiện và lưu nó vào sau, sau đó triển khai dấu nhắc khi chúng ta thấy phù hợp.
window.addeventlistener ('beforeinstallprompt', e = & gt; {
Console.log ('BeforeInstallPrompt Fired');
e.preventdefault ();
// stash sự kiện để nó có thể được kích hoạt sau.
this.deferredprompt = e;
trả lại sai;
});
// Khi bạn muốn kích hoạt dấu nhắc:
this.deferredprompt.prompt ();
this.deferredprompt.userchoice.Shen (Lựa chọn = & GT; {
Console.log (lựa chọn);
});
this.deferredprompt = null;
Hiệu suất là trái tim và linh hồn của pwas. Ứng dụng của bạn phải nhanh chóng cho người dùng trong tất cả các điều kiện mạng. Khả năng lưu trữ và ngoại tuyến giúp ích rất nhiều, nhưng vào cuối ngày, ứng dụng của bạn phải nhanh chóng ngay cả khi người dùng không có trình duyệt để hỗ trợ công nghệ nhân viên dịch vụ. Đây là định nghĩa về cải tiến tiến bộ - cung cấp trải nghiệm tuyệt vời cho tất cả mọi người, bất kể sự hiện đại của thiết bị hoặc điều kiện mạng.
Để làm như vậy, một bộ số liệu hữu ích là hệ thống đường sắt. Rail là những gì Google gọi là 'Mô hình hiệu suất trung tâm người dùng' - một bộ hướng dẫn để đo hiệu suất của ứng dụng của chúng tôi.
Từ viết tắt là viết tắt của phản hồi (Mất bao lâu để ứng dụng của bạn phản hồi các hành động của người dùng), hoạt hình (giữ tốc độ hoạt hình ở tốc độ 60fps), nhàn rỗi (sử dụng thời gian khi ứng dụng của bạn không thực hiện bất cứ điều gì khác để tải và bộ nhớ cache tài sản bổ sung) và Tải (tải ứng dụng của bạn trong một giây hoặc ít hơn).
Dưới đây là một bảng các điểm chuẩn có ý nghĩa để tải ứng dụng, vì được cung cấp bởi Meggin Kearney, Nhà văn Tech tại Google Web nguyên tắc cơ bản .
Google là nhà vô địch lớn nhất đẩy các ứng dụng web tiến bộ là tương lai của Web. Như vậy, nó đã cung cấp một công cụ hữu ích để hướng dẫn phát triển PWA của bạn.
Trước đây được gọi là Ngọn hải đăng và được cung cấp dưới dạng tiện ích mở rộng Chrome, kể từ Chrome 60, đó là một phần của Chrome Devtools, dưới tab 'Kiểm toán'. Những ngọn hải đăng nào là chạy ứng dụng của bạn trong các điều kiện khác nhau và đo lường phản ứng và thành công của nó theo hướng dẫn của PWA. Sau đó, nó cung cấp cho bạn điểm số 100. Nó cũng có thể ghi được ứng dụng của bạn trên các thực tiễn tốt nhất trên web cùng một lúc.
Văn bản sau đây là một danh sách các giá trị Ngọn hải đăng được đo. Trong sử dụng cũng cho thấy mô tả.
Bài viết này ban đầu xuất hiện trong nhà thiết kế web; Đăng ký tại đây .
Những bài viết liên quan:
[số 8] (Tín dụng hình ảnh: Matt Crouch) React Spring có thể giúp bạn với các hình ảnh động, nơ..
[số 8] Ở Houdini 17, SideFX đã giới thiệu một số công cụ mới và nâng cao những người khác để mở r�..
[số 8] Sự mềm mại và độ sáng của gậy pastel làm cho chúng trở thành lựa chọn lý tưởng cho nền tron..
[số 8] Trang 1/2: Tạo một ứng dụng bảng điều khiển trong React - các bước 1-10 ..
Trong 15 năm qua, WordPress đã trở thành hệ thống quản lý nội dung phổ biến nhất thế giới. Dễ dàng bắt đầu với và cực kỳ linh hoạt, đó là một tr..
[số 8] Khi bạn đã nghĩ ra một ý tưởng cho một sinh vật giả tưởng, bước tiếp theo là mang nó đến cu..
[số 8] Thiết kế và tiếp cận Sprint là chìa khóa để kết hợp các chủ sở hữu sản phẩm, nhà thiết k..
[số 8] Năm nghệ sĩ nổi bật thể hiện các thủ thuật thương mại của họ, giải thích cách tạo ra họa..