Rumah >hujung hadapan web >tutorial css >Cara Peralihan ke Manifest V3 untuk sambungan Chrome
Selepas beberapa kerja keras, saya akhirnya menyelesaikan tugas itu, tetapi saya tidak mahu hasil penyelidikan saya dibazirkan, jadi saya memutuskan untuk berkongsi pengalaman pembelajaran saya.
kepentingan penghijrahan v3 nyata
Penghijrahan v3 manifes dapat diringkaskan seperti berikut:
Adalah penting untuk bersaing dengan penghijrahan Google untuk nyata V3 kerana ia memperkenalkan peraturan baru untuk sambungan yang direka untuk meningkatkan keselamatan pengguna dan pengalaman pelayar keseluruhan, dan sambungan yang tidak mematuhi peraturan ini akhirnya akan dikeluarkan dari kedai web Chrome.
Singkatnya, jika anda tidak berhijrah secepat mungkin, semua usaha anda untuk membuat sambungan yang menggunakan v2 nyata boleh membazir.
perbezaan utama antara manifes v2 dan v3
Dalam senarai sambungan krom yang hanya mengubah latar belakang laman web, ia mungkin kelihatan seperti ini:
<code>// Manifest V2 { "manifest_version": 2, "name": "Shane's Extension", "version": "1.0", "description": "A simple extension that changes the background of a webpage to Shane's face.", "background": { "scripts": ["background.js"], "persistent": true }, "browser_action": { "default_popup": "popup.html" }, "permissions": [ "activeTab", ], "optional_permissions": ["<all_urls>"] }</all_urls></code>
<code>// Manifest V3 { "manifest_version": 3, "name": "Shane's Extension", "version": "1.0", "description": "A simple extension that changes the background of a webpage to Shane's face.", "background": { "service_worker": "background.js" }, "action": { "default_popup": "popup.html" }, "permissions": [ "activeTab", ], "host_permissions": [ "<all_urls>" ] }</all_urls></code>
Jika anda dapati beberapa tag di atas kelihatan pelik, teruskan membaca untuk mengetahui apa yang perlu anda ketahui.
Saya telah meringkaskan penghijrahan untuk nyata V3 menjadi empat bidang utama. Sudah tentu, walaupun terdapat banyak ciri baru dalam V3 yang baru yang perlu dilaksanakan dari V2 yang manifes lama, membuat perubahan dalam empat bidang ini akan menyediakan lanjutan Chrome anda untuk penghijrahan akhir.
Empat bidang utama ialah:
Melalui empat aspek ini, unsur -unsur asas senarai anda akan siap untuk berhijrah untuk nyata v3. Mari kita lihat setiap aspek utama secara terperinci dan pelajari cara bekerja untuk melindungi pelanjutan Chrome anda dari penghijrahan ini.
Struktur asas mengemas kini manifes adalah langkah pertama dalam bergerak ke nyata v3. Perubahan yang paling penting yang perlu anda buat ialah mengubah nilai elemen "manifest_version" ke 3, yang bermaksud anda menggunakan set ciri V3 yang nyata.
Salah satu perbezaan utama antara manifes v2 dan v3 adalah penggantian halaman backend dengan pekerja perkhidmatan lanjutan tunggal dalam nyata v3. Anda perlu mendaftarkan pekerja perkhidmatan di bawah medan "Latar Belakang", gunakan kunci "Service_Worker" dan tentukan satu fail JavaScript tunggal. Walaupun nyata v3 tidak menyokong skrip latar belakang berganda, anda boleh memilih untuk mengisytiharkan pekerja perkhidmatan sebagai modul ES dengan menyatakan "jenis": "modul", yang membolehkan anda mengimport lebih banyak kod.
Dalam nyata v3, atribut "Browser_Action" dan "page_action" digabungkan menjadi atribut "tindakan" tunggal. Anda perlu menggantikan sifat -sifat ini dengan "tindakan" dalam manifes. Begitu juga, Chrome.BrowserAction dan Chrome.PageAction API dalam Manifest V3 digabungkan ke dalam API 'Tindakan' tunggal, yang anda perlukan untuk berhijrah ke.
<code>// Manifest V2 "background": { "scripts": ["background.js"], "persistent": false }, "browser_action": { "default_popup": "popup.html" },</code>
<code>// Manifest V3 "background": { "service_worker": "background.js" }, "action": { "default_popup": "popup.html" }</code>
Secara umum, struktur asas manifes kemas kini adalah langkah utama dalam penghijrahan untuk nyata v3, kerana ia membolehkan anda memanfaatkan ciri -ciri dan perubahan baru yang diperkenalkan dalam versi API ini.
Langkah kedua dalam berhijrah untuk nyata v3 adalah untuk mengubahsuai keizinan tuan rumah. Dalam Manifest V2, anda menentukan keizinan tuan rumah dalam medan "Kebenaran" fail manifes. Dalam Manifest V3, kebenaran tuan rumah adalah elemen berasingan yang harus anda nyatakan dalam medan "Host_permissions" fail nyata.
Berikut adalah contoh cara mengubah suai keizinan tuan rumah:
<code>// Manifest V2 { "manifest_version": 2, "name": "Shane's Extension", "version": "1.0", "description": "A simple extension that changes the background of a webpage to Shane's face.", "background": { "scripts": ["background.js"], "persistent": true }, "browser_action": { "default_popup": "popup.html" }, "permissions": [ "activeTab", ], "optional_permissions": ["<all_urls>"] }</all_urls></code>
<code>// Manifest V3 { "manifest_version": 3, "name": "Shane's Extension", "version": "1.0", "description": "A simple extension that changes the background of a webpage to Shane's face.", "background": { "service_worker": "background.js" }, "action": { "default_popup": "popup.html" }, "permissions": [ "activeTab", ], "host_permissions": [ "<all_urls>" ] }</all_urls></code>
Untuk mengemas kini CSP pelanjutan V2 yang nyata untuk konsisten dengan nyata v3, anda perlu membuat beberapa perubahan pada fail manifes. Dalam manifes v2, CSP ditentukan sebagai rentetan dalam bidang "content_security_policy" yang nyata.
Dalam nyata V3, CSP kini menjadi objek yang ahli yang berbeza mewakili konteks CSP alternatif. Daripada menggunakan medan "content_security_policy" tunggal sekarang, anda perlu menentukan medan berasingan untuk "content_security_policy.extension_pages" dan "content_security_policy.sandbox" bergantung pada jenis halaman pelanjutan yang anda gunakan.
Jika anda mempunyai domain luaran dalam CSP semasa anda, anda juga harus memadamkan sebarang rujukan dari arahan "SCRIPT-SRC", "Worker-SRC", "Object-Src", dan "Style-Src". Membuat kemas kini CSP ini adalah penting untuk memastikan keselamatan dan kestabilan lanjutan dalam v3 nyata.
<code>// Manifest V2 "background": { "scripts": ["background.js"], "persistent": false }, "browser_action": { "default_popup": "popup.html" },</code>
<code>// Manifest V3 "background": { "service_worker": "background.js" }, "action": { "default_popup": "popup.html" }</code>
Langkah terakhir dalam berhijrah untuk nyata v3 adalah untuk mengubah suai pemprosesan permintaan rangkaian. Dalam Manifest V2, anda akan menggunakan API Chrome.WebRequest untuk mengubah suai permintaan rangkaian. Walau bagaimanapun, API ini digantikan oleh API DeclarativenEtrequest dalam Manifest V3.
Untuk menggunakan API baru ini, anda perlu menentukan kebenaran DeclarativenETrequest dalam manifes dan mengemas kini kod untuk menggunakan API baru. Perbezaan utama antara kedua-dua API adalah bahawa API DeclarativenEtrequest menghendaki anda menentukan senarai alamat yang telah ditetapkan untuk menyekat, dan bukannya menyekat keseluruhan kategori permintaan HTTP seperti menggunakan API Chrome.WebRequest.
Membuat perubahan ini kepada kod adalah sangat penting untuk memastikan pelanjutan terus berfungsi dengan baik di bawah nyata v3. Berikut adalah contoh bagaimana mengubah suai manifes untuk menggunakan API DeclarativenTrequest dalam nyata v3:
<code>// Manifest V2 "permissions": [ "activeTab", "storage", "http://www.css-tricks.com/", ":///*" ]</code>
<code>// Manifest V3 "permissions": [ "activeTab", "scripting", "storage" ], "host_permissions": [ "http://www.css-tricks.com/" ], "optional_host_permissions": [ ":///*" ]</code>
anda juga perlu mengemas kini kod sambungan untuk menggunakan API DeclarativenTrequest dan bukannya API Chrome.WebRequest.
Apa yang saya telah diperkenalkan hanyalah hujung gunung es. Sudah tentu, jika saya mahu menampung segala -galanya, saya mungkin berada di sini selama beberapa hari, dan panduan pemaju Chrome Google tidak masuk akal. Walaupun apa yang saya telah tutup akan menjadikan sambungan Chrome anda cukup selamat untuk penghijrahan ini, berikut adalah beberapa perkara lain yang mungkin anda ingin periksa untuk memastikan pelanjutan anda berfungsi dengan baik.
chrome.browserAction
dan chrome.pageAction
api: chrome.runtime.getBackgroundPage()
Penggunaan pekerja perkhidmatan dalam nyata v3 tidak sesuai dengan kaedah seperti chrome.extension.getBackgroundPage()
, chrome.extension.getExtensionTabs()
, chrome.extension.getViews()
dan chrome.scripting.executeScript({code: '...'})
manifest v3 tidak lagi dibenarkan untuk melaksanakan logik luaran menggunakan eval()
, new Function()
dan chrome.runtime.getURL()
. Ia mungkin perlu untuk memindahkan semua kod luaran (JavaScript, WebAssembly, CSS) ke dalam pakej sambungan, mengemas kini skrip dan rujukan gaya untuk memuat sumber dari pakej lanjutan, dan membina URL sumber semasa runtime menggunakan Dan banyak lagi!
sila luangkan sedikit masa untuk memahami semua perubahan. Lagipun, perubahan ini tidak dapat dielakkan, dan jika anda tidak mahu kehilangan lanjutan V2 yang nyata kerana mengelakkan penghijrahan ini, luangkan masa untuk menguasai pengetahuan yang diperlukan.
Sebaliknya, jika anda baru untuk pengaturcaraan sambungan Chrome dan ingin memulakan, cara yang baik adalah untuk menggali dunia alat pemaju web Chrome. Saya melakukan ini dengan kursus di LinkedIn Learning, yang memberi saya pemahaman cepat tentang kelajuan. Sebaik sahaja anda menguasai asas -asas ini, sila kembali ke artikel ini dan menterjemahkan apa yang anda tahu berdasarkan v3 nyata!
chrome.webRequestAPI
Bagi saya, penghijrahan untuk nyata V3 dan penyingkiran
Kebangkitan alat kecerdasan buatan pada tahun -tahun kebelakangan ini, yang kebanyakannya menyediakan API yang tersedia, telah memberi inspirasi kepada sejumlah besar aplikasi SaaS baru dan segar. Secara peribadi saya fikir ini adalah sehingga masa ke arah lebih banyak sambungan Chrome berdasarkan aplikasi! Walaupun banyak sambungan lama boleh dibersihkan oleh penghijrahan ini, banyak sambungan baru yang dibina di sekitar idea -idea SaaS novel akan diganti.
Jadi ini adalah kemas kini yang menarik yang boleh digunakan untuk meningkatkan sambungan lama atau membina yang baru! Secara peribadi saya fikir terdapat banyak kemungkinan untuk menggunakan API yang melibatkan kecerdasan buatan dalam sambungan untuk meningkatkan pengalaman melayari pengguna. Tetapi ini benar -benar hanya hujung gunung es. Jika anda ingin benar -benar menggunakan lanjutan profesional anda sendiri atau hubungi syarikat untuk membina/mengemas kini sambungan untuk mereka, saya cadangkan menaik taraf akaun Gmail anda kerana ia mempunyai kelebihan dalam kerjasama, membangun dan menerbitkan sambungan ke kedai web Chrome.
Atas ialah kandungan terperinci Cara Peralihan ke Manifest V3 untuk sambungan Chrome. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!