Rumah >hujung hadapan web >tutorial js >Bolehkah Laman Web Mengesan Jika Sambungan Chrome Dipasang?

Bolehkah Laman Web Mengesan Jika Sambungan Chrome Dipasang?

Barbara Streisand
Barbara Streisandasal
2024-11-21 18:22:141051semak imbas

Can Websites Detect If a Chrome Extension is Installed?

Cara Mengesan Pemasangan Sambungan Chrome daripada Skrip Luaran

Untuk mencipta pengalaman pengguna yang lancar, selalunya perlu untuk menentukan sama ada pengguna mempunyai sambungan Chrome tertentu dipasang. Ini membolehkan tapak web menyesuaikan kandungan dan fungsinya berdasarkan kehadiran sambungan.

Menurut kemas kini terkini, Chrome kini menyediakan keupayaan untuk menghantar mesej daripada tapak web kepada sambungan. Untuk mencapainya, ikuti langkah berikut:

  1. Dalam fail background.js sambungan, tambahkan kod berikut:

    chrome.runtime.onMessageExternal.addListener(
        function(request, sender, sendResponse) {
            if (request) {
                if (request.message) {
                    if (request.message == "version") {
                        sendResponse({version: 1.0});
                    }
                }
            }
            return true;
        });
  2. Dari tapak web, anda boleh menghantar mesej ke sambungan:

    var hasExtension = false;
    
    chrome.runtime.sendMessage(extensionId, { message: "version" },
        function (reply) {
            if (reply) {
                if (reply.version) {
                    if (reply.version >= requiredVersion) {
                        hasExtension = true;
                    }
                }
            } else {
                hasExtension = false;
            }
        });
  3. Setelah sambungan bertindak balas, anda boleh menyemak pembolehubah hasExtension untuk menentukan status pemasangan pengguna.

Perhatikan bahawa pertukaran mesej adalah tidak segerak, jadi anda mungkin perlu melaksanakan logik untuk mengendalikan potensi untuk kelewatan.

Edit:

  1. Tambahkan entri pada fail manifest.json yang menyatakan domain yang dibenarkan untuk hantar mesej ke sambungan:

    "externally_connectable": {
        "matches": ["*://localhost/*", "*://your.domain.com/*"]
    },
  2. Dalam panggilan balik daripada chrome.runtime.sendMessage, kendalikan kemungkinan ralat yang mungkin timbul jika sambungan tidak dipasang atau dilumpuhkan:

    if (chrome.runtime.lastError) {
        // handle error 
    }

Atas ialah kandungan terperinci Bolehkah Laman Web Mengesan Jika Sambungan Chrome Dipasang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn