chrome.commands

বিবরণ

আপনার এক্সটেনশনে অ্যাকশন ট্রিগার করে এমন কীবোর্ড শর্টকাট যোগ করতে API কমান্ড ব্যবহার করুন, উদাহরণস্বরূপ, ব্রাউজার অ্যাকশন খোলার জন্য কোনও অ্যাকশন বা এক্সটেনশনে কোনও কমান্ড পাঠানো।

ম্যানিফেস্ট

এই API ব্যবহার করার জন্য নিম্নলিখিত কীগুলি ম্যানিফেস্টে ঘোষণা করতে হবে।

"commands"

ধারণা এবং ব্যবহার

কমান্ডস এপিআই এক্সটেনশন ডেভেলপারদের নির্দিষ্ট কমান্ড সংজ্ঞায়িত করতে এবং একটি ডিফল্ট কী সংমিশ্রণের সাথে আবদ্ধ করতে দেয়। এক্সটেনশন গ্রহণ করে এমন প্রতিটি কমান্ডকে এক্সটেনশনের ম্যানিফেস্টে "commands" অবজেক্টের বৈশিষ্ট্য হিসাবে ঘোষণা করতে হবে।

কমান্ডের নাম হিসেবে প্রোপার্টি কী ব্যবহার করা হয়। কমান্ড অবজেক্ট দুটি প্রোপার্টি নিতে পারে।

suggested_key

একটি ঐচ্ছিক বৈশিষ্ট্য যা কমান্ডের জন্য ডিফল্ট কীবোর্ড শর্টকাট ঘোষণা করে। বাদ দিলে, কমান্ডটি আনবাউন্ড হবে। এই বৈশিষ্ট্যটি একটি স্ট্রিং অথবা একটি অবজেক্ট মান নিতে পারে।

  • একটি স্ট্রিং মান ডিফল্ট কীবোর্ড শর্টকাট নির্দিষ্ট করে যা সমস্ত প্ল্যাটফর্ম জুড়ে ব্যবহার করা উচিত।

    • একটি অবজেক্ট ভ্যালু এক্সটেনশন ডেভেলপারকে প্রতিটি প্ল্যাটফর্মের জন্য কীবোর্ড শর্টকাট কাস্টমাইজ করতে দেয়। প্ল্যাটফর্ম-নির্দিষ্ট শর্টকাট প্রদান করার সময়, বৈধ অবজেক্ট প্রোপার্টিগুলি হল default , chromeos , linux , mac , এবং windows

    আরও তথ্যের জন্য কী সমন্বয়ের প্রয়োজনীয়তা দেখুন।

description
ব্যবহারকারীকে কমান্ডের উদ্দেশ্য সম্পর্কে একটি সংক্ষিপ্ত বিবরণ প্রদান করার জন্য ব্যবহৃত একটি স্ট্রিং। এই স্ট্রিংটি এক্সটেনশন কীবোর্ড শর্টকাট ম্যানেজমেন্ট UI-তে প্রদর্শিত হয়। স্ট্যান্ডার্ড কমান্ডের জন্য বর্ণনা প্রয়োজন, কিন্তু অ্যাকশন কমান্ডের জন্য উপেক্ষা করা হয়।

একটি এক্সটেনশনে অনেক কমান্ড থাকতে পারে, তবে সর্বাধিক চারটি প্রস্তাবিত কীবোর্ড শর্টকাট নির্দিষ্ট করতে পারে। ব্যবহারকারী chrome://extensions/shortcuts ডায়ালগ থেকে ম্যানুয়ালি আরও শর্টকাট যোগ করতে পারেন।

সমর্থিত কীগুলি

নিম্নলিখিত কীগুলি ব্যবহারযোগ্য কমান্ড শর্টকাট। কী সংজ্ঞাগুলি কেস সংবেদনশীল। ভুলভাবে কেসযুক্ত কী দিয়ে একটি এক্সটেনশন লোড করার চেষ্টা করলে ইনস্টলেশনের সময় একটি ম্যানিফেস্ট পার্স ত্রুটি দেখা দেবে।

আলফা কী
AZ
সংখ্যাসূচক কী
0 ... 9
স্ট্যান্ডার্ড কী স্ট্রিং

সাধারণ - Comma , Period , Home , End , PageUp , PageDown , Space , Insert , Delete

তীরচিহ্ন - Up , Down , Left , Right

মিডিয়া কী - MediaNextTrack , MediaPlayPause , MediaPrevTrack , MediaStop

সংশোধক কী স্ট্রিং

Ctrl , Alt , Shift , MacCtrl (শুধুমাত্র macOS), Option (শুধুমাত্র macOS), Command (শুধুমাত্র macOS), Search (শুধুমাত্র ChromeOS)

কী সমন্বয়ের প্রয়োজনীয়তা

  • এক্সটেনশন কমান্ড শর্টকাটগুলিতে Ctrl অথবা Alt অন্তর্ভুক্ত থাকতে হবে।

    • মিডিয়া কীগুলির সাথে সংশোধক ব্যবহার করা যাবে না

    • অনেক macOS কীবোর্ডে, Alt বলতে Option কী বোঝায়।

    • macOS-এ, Ctrl এর পরিবর্তে Command অথবা MacCtrl ব্যবহার করা যেতে পারে, এবং Alt এর পরিবর্তে Option কী ব্যবহার করা যেতে পারে (পরবর্তী বুলেট পয়েন্ট দেখুন)।

  • macOS-এ Ctrl স্বয়ংক্রিয়ভাবে Command এ রূপান্তরিত হয়।

    • "mac" শর্টকাটেও কমান্ড কী স্পষ্টভাবে উল্লেখ করার জন্য Command ব্যবহার করা যেতে পারে।

    • macOS-এ Control কী ব্যবহার করতে, "mac" শর্টকাট সংজ্ঞায়িত করার সময় Ctrl এর পরিবর্তে MacCtrl ব্যবহার করুন।

    • অন্য প্ল্যাটফর্মের জন্য MacCtrl ব্যবহার করলে একটি বৈধতা ত্রুটি দেখা দেবে এবং এক্সটেনশনটি ইনস্টল হতে বাধা দেবে।

  • সকল প্ল্যাটফর্মে Shift একটি ঐচ্ছিক সংশোধক।

  • Search হল ChromeOS-এর জন্য একচেটিয়া একটি ঐচ্ছিক সংশোধক।

  • কিছু অপারেটিং সিস্টেম এবং ক্রোম শর্টকাট (যেমন উইন্ডো ম্যানেজমেন্ট) সর্বদা এক্সটেনশন কমান্ড শর্টকাটের চেয়ে অগ্রাধিকার পায় এবং ওভাররাইড করা যায় না।

কমান্ড ইভেন্টগুলি পরিচালনা করুন

ম্যানিফেস্ট.জেসন:

{
  "name": "My extension",
  ...
  "commands": {
    "run-foo": {
      "suggested_key": {
        "default": "Ctrl+Shift+Y",
        "mac": "Command+Shift+Y"
      },
      "description": "Run \"foo\" on the current page."
    },
    "_execute_action": {
      "suggested_key": {
        "windows": "Ctrl+Shift+Y",
        "mac": "Command+Shift+Y",
        "chromeos": "Ctrl+Shift+U",
        "linux": "Ctrl+Shift+J"
      }
    }
  },
  ...
}

আপনার সার্ভিস ওয়ার্কারে, আপনি onCommand.addListener ব্যবহার করে ম্যানিফেস্টে সংজ্ঞায়িত প্রতিটি কমান্ডের সাথে একটি হ্যান্ডলার আবদ্ধ করতে পারেন। উদাহরণস্বরূপ:

service-worker.js:

chrome.commands.onCommand.addListener((command) => {
  console.log(`Command: ${command}`);
});

অ্যাকশন কমান্ড

_execute_action (Manifest V3), _execute_browser_action (Manifest V2), এবং _execute_page_action (Manifest V2) কমান্ডগুলি যথাক্রমে আপনার অ্যাকশন, ব্রাউজার অ্যাকশন, অথবা পৃষ্ঠা অ্যাকশন ট্রিগার করার জন্য সংরক্ষিত। এই কমান্ডগুলি স্ট্যান্ডার্ড কমান্ডের মতো command.onCommand ইভেন্টগুলি প্রেরণ করে না।

আপনার পপআপ খোলার উপর ভিত্তি করে যদি পদক্ষেপ নেওয়ার প্রয়োজন হয়, তাহলে আপনার পপআপের জাভাস্ক্রিপ্টের ভিতরে একটি DOMContentLoaded ইভেন্ট শোনার কথা বিবেচনা করুন।

ব্যাপ্তি

ডিফল্টরূপে, কমান্ডগুলি Chrome ব্রাউজারে সীমাবদ্ধ থাকে। এর অর্থ হল যখন ব্রাউজারে ফোকাস থাকে না, তখন কমান্ড শর্টকাটগুলি নিষ্ক্রিয় থাকে। Chrome 35 থেকে শুরু করে, এক্সটেনশন ডেভেলপাররা ঐচ্ছিকভাবে একটি কমান্ডকে "গ্লোবাল" হিসাবে চিহ্নিত করতে পারে। Chrome-এ ফোকাস না থাকলেও গ্লোবাল কমান্ডগুলি কাজ করে।

গ্লোবাল কমান্ডের জন্য কীবোর্ড শর্টকাট পরামর্শগুলি Ctrl+Shift+[0..9] এর মধ্যে সীমাবদ্ধ। এটি অন্যান্য অ্যাপ্লিকেশনগুলিতে শর্টকাটগুলিকে ওভাররাইড করার ঝুঁকি কমানোর জন্য একটি প্রতিরক্ষামূলক ব্যবস্থা কারণ উদাহরণস্বরূপ, যদি Alt+P গ্লোবাল হিসাবে অনুমোদিত করা হয়, তাহলে প্রিন্ট ডায়ালগ খোলার জন্য কীবোর্ড শর্টকাট অন্যান্য অ্যাপ্লিকেশনগুলিতে কাজ নাও করতে পারে।

শেষ ব্যবহারকারীরা chrome://extensions/shortcuts এ প্রদর্শিত UI ব্যবহার করে তাদের পছন্দের কী সংমিশ্রণে গ্লোবাল কমান্ডগুলি পুনরায় ম্যাপ করতে পারবেন।

উদাহরণ:

ম্যানিফেস্ট.জেসন:

{
  "name": "My extension",
  ...
  "commands": {
    "toggle-feature-foo": {
      "suggested_key": {
        "default": "Ctrl+Shift+5"
      },
      "description": "Toggle feature foo",
      "global": true
    }
  },
  ...
}

উদাহরণ

নিম্নলিখিত উদাহরণগুলি কমান্ডস API-এর মূল কার্যকারিতাকে ফ্লেক্স করে।

মৌলিক কমান্ড

কমান্ডগুলি এক্সটেনশনগুলিকে ব্যবহারকারী দ্বারা ব্যবহৃত কীবোর্ড শর্টকাটগুলিতে লজিক ম্যাপ করার অনুমতি দেয়। সবচেয়ে মৌলিকভাবে, একটি কমান্ডের জন্য শুধুমাত্র এক্সটেনশনের ম্যানিফেস্টে একটি কমান্ড ঘোষণা এবং নিম্নলিখিত উদাহরণে দেখানো শ্রোতা নিবন্ধনের প্রয়োজন হয়।

ম্যানিফেস্ট.জেসন:

{
  "name": "Command demo - basic",
  "version": "1.0",
  "manifest_version": 3,
  "background": {
    "service_worker": "service-worker.js"
  },
  "commands": {
    "inject-script": {
      "suggested_key": "Ctrl+Shift+Y",
      "description": "Inject a script on the page"
    }
  }
}

service-worker.js:

chrome.commands.onCommand.addListener((command) => {
  console.log(`Command "${command}" triggered`);
});

অ্যাকশন কমান্ড

ধারণা এবং ব্যবহার বিভাগে বর্ণিত হিসাবে, আপনি একটি এক্সটেনশনের ক্রিয়াতে একটি কমান্ড ম্যাপ করতে পারেন। নিম্নলিখিত উদাহরণটি একটি কন্টেন্ট স্ক্রিপ্ট ইনজেক্ট করে যা বর্তমান পৃষ্ঠায় একটি সতর্কতা দেখায় যখন ব্যবহারকারী হয় এক্সটেনশনের ক্রিয়ায় ক্লিক করে অথবা কীবোর্ড শর্টকাট ট্রিগার করে।

ম্যানিফেস্ট.জেসন:

{
  "name": "Commands demo - action invocation",
  "version": "1.0",
  "manifest_version": 3,
  "background": {
    "service_worker": "service-worker.js"
  },
  "permissions": ["activeTab", "scripting"],
  "action": {},
  "commands": {
    "_execute_action": {
      "suggested_key": {
        "default": "Ctrl+U",
        "mac": "Command+U"
      }
    }
  }
}

service-worker.js:

chrome.action.onClicked.addListener((tab) => {
  chrome.scripting.executeScript({
    target: {tabId: tab.id},
    func: contentScriptFunc,
    args: ['action'],
  });
});

function contentScriptFunc(name) {
  alert(`"${name}" executed`);
}

// This callback WILL NOT be called for "_execute_action"
chrome.commands.onCommand.addListener((command) => {
  console.log(`Command "${command}" called`);
});

নিবন্ধিত কমান্ড যাচাই করুন

যদি কোনও এক্সটেনশন অন্য কোনও এক্সটেনশন দ্বারা ব্যবহৃত শর্টকাট নিবন্ধন করার চেষ্টা করে, তাহলে দ্বিতীয় এক্সটেনশনের শর্টকাটটি প্রত্যাশা অনুযায়ী নিবন্ধন করবে না। এই সম্ভাবনাটি অনুমান করে এবং ইনস্টলেশনের সময় সংঘর্ষের জন্য পরীক্ষা করে আপনি আরও শক্তিশালী শেষ ব্যবহারকারীর অভিজ্ঞতা প্রদান করতে পারেন।

service-worker.js:

chrome.runtime.onInstalled.addListener((details) => {
  if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
    checkCommandShortcuts();
  }
});

// Only use this function during the initial install phase. After
// installation the user may have intentionally unassigned commands.
function checkCommandShortcuts() {
  chrome.commands.getAll((commands) => {
    let missingShortcuts = [];

    for (let {name, shortcut} of commands) {
      if (shortcut === '') {
        missingShortcuts.push(name);
      }
    }

    if (missingShortcuts.length > 0) {
      // Update the extension UI to inform the user that one or more
      // commands are currently unassigned.
    }
  });
}

প্রকারভেদ

Command

বৈশিষ্ট্য

  • বর্ণনা

    স্ট্রিং ঐচ্ছিক

    এক্সটেনশন কমান্ডের বর্ণনা

  • নাম

    স্ট্রিং ঐচ্ছিক

    এক্সটেনশন কমান্ডের নাম

  • শর্টকাট

    স্ট্রিং ঐচ্ছিক

    এই কমান্ডের জন্য সক্রিয় শর্টকাট, অথবা সক্রিয় না থাকলে ফাঁকা।

পদ্ধতি

getAll()

chrome.commands.getAll(): Promise<Command[]>

এই এক্সটেনশনের জন্য সমস্ত নিবন্ধিত এক্সটেনশন কমান্ড এবং তাদের শর্টকাট (যদি সক্রিয় থাকে) ফেরত দেয়। Chrome 110 এর আগে, এই কমান্ডটি _execute_action ফেরত দিত না।

রিটার্নস

  • প্রতিশ্রুতি< আদেশ []>

    ক্রোম ৯৬+

ইভেন্টগুলি

onCommand

chrome.commands.onCommand.addListener(
  callback: function,
)

কীবোর্ড শর্টকাট ব্যবহার করে একটি নিবন্ধিত কমান্ড সক্রিয় করা হলে এটি চালু হয়।

পরামিতি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এরকম:

    (command: string, tab?: tabs.Tab) => void