Secara umum, Anda perlu menayangkan halaman dan skrip service worker Anda melalui HTTPS untuk menggunakan service worker. Alasannya dijelaskan di Pilih Asal yang Aman Untuk Fitur Baru yang Kuat .
Ada pengecualian untuk persyaratan HTTPS untuk memfasilitasi pengembangan lokal: jika Anda mengakses laman dan skrip pekerja layanan melalui http://localhost[:port]
, atau melalui http://127.x.y.z[:port]
, pekerja layanan harus diaktifkan tanpa tindakan lebih lanjut.
Di versi Chrome terbaru, Anda dapat mengatasi persyaratan ini selama pengembangan lokal melalui chrome://flags/#unsafely-treat-insecure-origin-as-secure
, seperti yang dijelaskan dalam jawaban ini .
Firefox menawarkan fungsionalitas serupa , melalui devtools.serviceWorkers.testing.enabled
pengaturan.
Perhatikan bahwa fungsi ini hanya dimaksudkan untuk memfasilitasi pengujian yang tidak dapat dilakukan, dan Anda harus selalu berencana menggunakan HTTPS saat menyajikan versi produksi situs Anda. Jangan meminta pengguna sungguhan untuk melakukan langkah-langkah mengaktifkan bendera tersebut!
devtools.serviceWorkers.testing.enabled
.Jika Anda ingin men-debug pekerja layanan perangkat seluler yang terpasang untuk pengujian perilaku nyata dari aplikasi web progresif, opsi mulai ssl chrome tidak membantu dan Anda pasti tidak perlu membeli sertifikat.
@ chris-ruppel menyebutkan menginstal perangkat lunak proxy, tetapi sebenarnya ada cara yang lebih mudah menggunakan penerusan porta :
Dengan asumsi Anda menghubungkan dan men-debug perangkat Anda menggunakan Chrome:
Setelah Anda melakukannya, Anda dapat memanggil URL " http: // localhost: 8080 " di perangkat seluler Anda dan itu akan dijawab oleh "localhost: 80" di PC / server pengujian Anda yang sebenarnya . Bekerja sempurna dengan service worker seolah-olah itu adalah mesin lokal Anda yang berjalan di ponsel Anda.
Berfungsi juga untuk beberapa penerusan port dan domain target yang berbeda selama Anda ingat untuk menggunakan port yang tidak memiliki hak istimewa pada perangkat seluler Anda. Lihat tangkapan layar:
Sumber info ini adalah dokumentasi perangkat jarak jauh google: https://developers.google.com/web/tools/chrome-devtools/remote-debugging/local-server (tetapi mulai Apr 2017 tidak terlalu jelas untuk membaca ini jawaban sederhana dari itu)
sumber
Saya sering ingin men-debug dan menguji di perangkat nyata. Salah satu metode yang saya temukan melibatkan perutean lalu lintas jaringan telepon melalui Charles Proxy selama pengembangan lokal. Tidak seperti semua solusi khusus Chrome, ini berfungsi dengan browser apa pun di ponsel Anda.
localhost
di perangkat seluler saya sekarang memungkinkan Service Worker untuk didaftarkan dan diuji.sumber
Cara termudah untuk menguji pwa, dalam kasus saya, menggunakan ngrok. https://ngrok.com/download log in, dapatkan token Anda dan atur!
Saat Anda menjalankan,
./ngrok http {your server port}
pastikan Anda menggunakan https yang akan ditampilkan di terminal setelah Anda menjalankan perintah di atas.Anda dapat menggunakan https://surge.sh juga, ini untuk menghosting halaman web statis, jika Anda mengunjungi di sini: https://surge.sh/help/securing-your-custom-domain-with-ssl akan dapat lihat cara mengatur sertifikat ssl
sumber
Seperti yang disebutkan Jeff di respons pertama, Anda tidak perlu https di level localhost untuk menguji Service Worker. Pekerja layanan akan mendaftar dan bekerja dengan baik selama Anda mengakses domain localhost - tanpa HTTPS.
Setelah aplikasi Anda diuji di localhost dan Anda ingin melihat cara kerjanya dengan https secara nyata, pendekatan paling sederhana adalah mengunggah aplikasi Anda ke GitHub. Anda dapat membuat domain publik secara gratis (dan dengan HTTPS!).
Berikut instruksinya: https://pages.github.com/
sumber
Jika Anda ingin menguji service worker di perangkat klien yang tidak dapat menjalankan server web di localhost, teknik umumnya adalah sebagai berikut:
Tapi ini lebih mudah diucapkan daripada dilakukan. Dalam AMA November 2016 di Reddit, perwakilan Let's Encrypt mengakui bahwa HTTPS di LAN pribadi "adalah pertanyaan yang sangat sulit, dan saya pikir belum ada yang memberikan jawaban yang memuaskan sejauh ini."
Cara umum untuk memberikan nama host pada komputer Anda melibatkan pemberian alamat IP internal yang stabil, bukan alamat yang berubah setiap hari atau setiap kali Anda melakukan siklus daya alat gateway Internet Anda. Anda harus mengkonfigurasi server DHCP di jaringan Anda, biasanya di gateway Anda, untuk menyiapkan "reservasi" yang mengaitkan alamat pribadi tertentu (biasanya di dalam
10/8
atau192.168/16
) dengan alamat MAC kartu Ethernet stasiun kerja pengembangan Anda. Untuk ini, baca manual gateway Anda.Sekarang setelah stasiun kerja pengembangan Anda memiliki alamat IP yang stabil, ada pertukaran waktu / uang. Jika Anda ingin mempelajari penggunaan DNS dan OpenSSL tingkat lanjut dan memasang sertifikat root pada semua perangkat yang ingin Anda uji:
Jika Anda tidak dapat menambahkan sertifikat akar atau mengontrol DNS lokal, seperti jika Anda berencana untuk menguji dengan perangkat milik orang lain (BYOD) atau dengan browser yang lebih terkunci yang tidak mengizinkan pengguna untuk menambahkan sertifikat dasar tepercaya, seperti yang di perangkat utama konsol video game, Anda memerlukan nama domain yang memenuhi syarat (FQDN):
A
catatan ke alamat IP pribadi stasiun kerja pengembangan Anda. Ini memberi stasiun kerja pengembangan Anda FQDN.dns-01
tantangan, untuk mendapatkan sertifikat untuk FQDN ini dari otoritas sertifikat Let's Encrypt.sumber
Menurut saya, cara termudah untuk menguji pekerja layanan adalah dengan menemukan penyedia hosting gratis. Saat ini banyak sekali situs yang menyediakan hosting gratis. Anda dapat dengan mudah menghosting aplikasi Anda di server gratis ini.
Saya kebanyakan menggunakan heroku dan netlify . ini gratis dan mudah digunakan.
sumber