বর্ণনা
সার্ভিস ওয়ার্কার খুঁজে পেতে, ম্যানিফেস্টের বিবরণ জানতে এবং এক্সটেনশন লাইফসাইকেলের ইভেন্টগুলো শুনতে ও সেগুলোতে সাড়া দিতে chrome.runtime API ব্যবহার করুন। এছাড়াও, URL-এর রিলেটিভ পাথকে সম্পূর্ণ-যোগ্য URL-এ রূপান্তর করতেও আপনি এই API ব্যবহার করতে পারেন।
সংক্ষিপ্ত বিবরণ
রানটাইম এপিআই এমন অনেক কার্যকারিতা সমর্থন করার জন্য মেথড সরবরাহ করে যা আপনার এক্সটেনশনগুলো ব্যবহার করতে পারে:
- বার্তা প্রেরণ
- আপনার এক্সটেনশনটি connect() , onConnect , onConnectExternal , sendMessage() , onMessage এবং onMessageExternal এই মেথড ও ইভেন্টগুলো ব্যবহার করে নিজের ভেতরের বিভিন্ন কনটেক্সটের সাথে এবং অন্যান্য এক্সটেনশনের সাথেও যোগাযোগ করতে পারে। এছাড়াও, আপনার এক্সটেনশনটি connectNative() এবং sendNativeMessage() ব্যবহার করে ব্যবহারকারীর ডিভাইসের নেটিভ অ্যাপ্লিকেশনগুলোতে মেসেজ পাঠাতে পারে।
- এক্সটেনশন এবং প্ল্যাটফর্ম মেটাডেটা অ্যাক্সেস করা
- এই পদ্ধতিগুলো আপনাকে এক্সটেনশন এবং প্ল্যাটফর্ম সম্পর্কে বেশ কিছু নির্দিষ্ট মেটাডেটা পুনরুদ্ধার করতে দেয়। এই বিভাগের পদ্ধতিগুলোর মধ্যে রয়েছে getManifest() এবং getPlatformInfo() ।
- এক্সটেনশন জীবনচক্র এবং বিকল্পগুলি পরিচালনা করা
- এই প্রোপার্টিগুলো আপনাকে এক্সটেনশনের উপর কিছু মেটা-অপারেশন করতে এবং অপশন পেজ প্রদর্শন করতে দেয়। এই ক্যাটাগরির মেথড এবং ইভেন্টগুলোর মধ্যে রয়েছে onInstalled , onStartup , openOptionsPage() , reload() , requestUpdateCheck() , এবং setUninstallURL() ।
- সহায়ক ইউটিলিটি
- এই মেথডগুলো অভ্যন্তরীণ রিসোর্স রিপ্রেজেন্টেশনকে বাহ্যিক ফরম্যাটে রূপান্তরের মতো সুবিধা প্রদান করে। এই ক্যাটাগরির মেথডগুলোর মধ্যে getURL() অন্তর্ভুক্ত।
- কিয়স্ক মোড ইউটিলিটিগুলি
- এই মেথডগুলো শুধুমাত্র ChromeOS-এ উপলব্ধ এবং এগুলো মূলত কিয়স্ক ইমপ্লিমেন্টেশনকে সমর্থন করার জন্য বিদ্যমান। এই ক্যাটাগরির মেথডগুলোর মধ্যে restart এবং restartAfterDelay অন্তর্ভুক্ত।
অনুমতি
রানটাইম এপিআই-এর বেশিরভাগ মেথডের জন্য কোনো অনুমতির প্রয়োজন হয় না , তবে sendNativeMessage এবং connectNative মেথড দুটির জন্য nativeMessaging অনুমতির প্রয়োজন হয়।
প্রকাশ
নিম্নলিখিত উদাহরণে দেখানো হয়েছে কিভাবে ম্যানিফেস্টে nativeMessaging পারমিশনটি ঘোষণা করতে হয়:
manifest.json:
{
"name": "My extension",
...
"permissions": [
"nativeMessaging"
],
...
}
ব্যবহারের ক্ষেত্র
একটি ওয়েব পৃষ্ঠায় একটি ছবি যোগ করুন
একটি ওয়েব পেজ থেকে অন্য ডোমেইনে হোস্ট করা কোনো অ্যাসেট অ্যাক্সেস করতে হলে, সেটিকে অবশ্যই রিসোর্সটির সম্পূর্ণ URL উল্লেখ করতে হবে (যেমন <img src="https://example.com/logo.png"> )। একটি ওয়েব পেজে এক্সটেনশন অ্যাসেট অন্তর্ভুক্ত করার ক্ষেত্রেও একই নিয়ম প্রযোজ্য। দুটি পার্থক্য হলো, এক্সটেনশনের অ্যাসেটগুলোকে অবশ্যই ওয়েব অ্যাক্সেসযোগ্য রিসোর্স হিসেবে প্রকাশ করতে হবে এবং সাধারণত কন্টেন্ট স্ক্রিপ্টগুলোই এক্সটেনশন অ্যাসেটগুলো ইনজেক্ট করার দায়িত্বে থাকে।
এই উদাহরণে, এক্সটেনশনটি runtime.getURL() ব্যবহার করে একটি সম্পূর্ণ-যোগ্য URL তৈরি করার মাধ্যমে, কন্টেন্ট স্ক্রিপ্ট ইনজেক্ট করা পেজটিতে logo.png যোগ করবে। কিন্তু তার আগে, অ্যাসেটটিকে ম্যানিফেস্টে একটি ওয়েব অ্যাক্সেসযোগ্য রিসোর্স হিসেবে ঘোষণা করতে হবে।
manifest.json:
{
...
"web_accessible_resources": [
{
"resources": [ "logo.png" ],
"matches": [ "https://*/*" ]
}
],
...
}
content.js:
{ // Block used to avoid setting global variables
const img = document.createElement('img');
img.src = chrome.runtime.getURL('logo.png');
document.body.append(img);
}
সার্ভিস ওয়ার্কার থেকে কন্টেন্ট স্ক্রিপ্টে ডেটা পাঠান
প্রায়শই একটি এক্সটেনশনের কন্টেন্ট স্ক্রিপ্টগুলোর এমন ডেটার প্রয়োজন হয় যা এক্সটেনশনটিরই অন্য কোনো অংশ, যেমন সার্ভিস ওয়ার্কার, দ্বারা পরিচালিত হয়। একই ওয়েব পেজে খোলা দুটি ব্রাউজার উইন্ডোর মতোই, এই দুটি কনটেক্সট সরাসরি একে অপরের ভ্যালু অ্যাক্সেস করতে পারে না। এর পরিবর্তে, এক্সটেনশনটি এই বিভিন্ন কনটেক্সটগুলোর মধ্যে সমন্বয় সাধনের জন্য মেসেজ পাসিং ব্যবহার করতে পারে।
এই উদাহরণে, কন্টেন্ট স্ক্রিপ্টটির UI ইনিশিয়ালাইজ করার জন্য এক্সটেনশনের সার্ভিস ওয়ার্কারের কাছ থেকে কিছু ডেটার প্রয়োজন হয়। এই ডেটা পাওয়ার জন্য, এটি সার্ভিস ওয়ার্কারকে একটি get-user-data মেসেজ পাঠায়, এবং সার্ভিস ওয়ার্কারটি ব্যবহারকারীর তথ্যের একটি কপি দিয়ে সাড়া দেয়।
content.js:
// 1. Send a message to the service worker requesting the user's data
chrome.runtime.sendMessage('get-user-data', (response) => {
// 3. Got an asynchronous response with the data from the service worker
console.log('received user data', response);
initializeUI(response);
});
background.js:
// Example of a simple user data object
const user = {
username: 'demo-user'
};
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
// 2. A page requested user data, respond with a copy of `user`
if (message === 'get-user-data') {
sendResponse(user);
}
});
আনইনস্টল করার বিষয়ে মতামত সংগ্রহ করুন
অনেক এক্সটেনশন তার ব্যবহারকারীদের আরও ভালোভাবে সেবা দেওয়ার এবং ধরে রাখার হার উন্নত করার উপায় বোঝার জন্য আনইনস্টল-পরবর্তী সমীক্ষা ব্যবহার করে। নিম্নলিখিত উদাহরণটি দেখায় কীভাবে এই কার্যকারিতাটি যুক্ত করতে হয়।
background.js:
chrome.runtime.onInstalled.addListener(details => {
if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.runtime.setUninstallURL('https://example.com/extension-survey');
}
});
সম্প্রসারণের উদাহরণ
আরও রানটাইম এপিআই উদাহরণের জন্য ম্যানিফেস্ট ভি৩ - ওয়েব অ্যাক্সেসিবল রিসোর্সেস ডেমোটি দেখুন।
প্রকারভেদ
ContextFilter
নির্দিষ্ট এক্সটেনশন কনটেক্সট মেলানোর জন্য একটি ফিল্টার। যে কনটেক্সটগুলো মিলবে, সেগুলোকে অবশ্যই নির্দিষ্ট করা সমস্ত ফিল্টারের সাথে মিলতে হবে; যে ফিল্টার নির্দিষ্ট করা নেই, তা উপলব্ধ সমস্ত কনটেক্সটের সাথে মিলে যাবে। সুতরাং, `{}` ফিল্টারটি উপলব্ধ সমস্ত কনটেক্সটের সাথে মিলে যাবে।
বৈশিষ্ট্য
- প্রসঙ্গ আইডি
স্ট্রিং[] ঐচ্ছিক
- প্রসঙ্গের প্রকার
ContextType [] ঐচ্ছিক
- ডকুমেন্ট আইডি
স্ট্রিং[] ঐচ্ছিক
- নথির উৎস
স্ট্রিং[] ঐচ্ছিক
- ডকুমেন্ট ইউআরএল
স্ট্রিং[] ঐচ্ছিক
- ফ্রেমআইডি
সংখ্যা[] ঐচ্ছিক
- ছদ্মবেশে
বুলিয়ান ঐচ্ছিক
- ট্যাবআইডি
সংখ্যা[] ঐচ্ছিক
- উইন্ডোআইডি
সংখ্যা[] ঐচ্ছিক
ContextType
এনাম
"ট্যাব" "পপআপ" "পটভূমি" "অফস্ক্রিন_ডকুমেন্ট" "সাইড_প্যানেল" "ডেভেলপার_টুলস"
ট্যাব হিসেবে প্রসঙ্গের ধরণ নির্দিষ্ট করে।
এক্সটেনশন পপআপ উইন্ডো হিসাবে কনটেক্সট টাইপ নির্দিষ্ট করে।
কনটেক্সট টাইপকে সার্ভিস ওয়ার্কার হিসেবে নির্দিষ্ট করে।
কনটেক্সট টাইপকে একটি অফস্ক্রিন ডকুমেন্ট হিসেবে নির্দিষ্ট করে।
কনটেক্সট টাইপকে সাইড প্যানেল হিসেবে নির্দিষ্ট করে।
প্রসঙ্গের ধরণ হিসেবে ডেভেলপার টুলস নির্দিষ্ট করা হয়েছে।
ExtensionContext
একটি কনটেক্সট যা এক্সটেনশন কন্টেন্ট হোস্ট করে।
বৈশিষ্ট্য
- প্রসঙ্গ আইডি
স্ট্রিং
এই প্রেক্ষাপটের জন্য একটি অনন্য শনাক্তকারী
- প্রসঙ্গের ধরণ
এটি যে ধরনের প্রেক্ষাপটের সাথে সঙ্গতিপূর্ণ।
- ডকুমেন্ট আইডি
স্ট্রিং ঐচ্ছিক
এই কনটেক্সটের সাথে সংশ্লিষ্ট ডকুমেন্টের জন্য একটি UUID, অথবা যদি এই কনটেক্সটটি কোনো ডকুমেন্টে হোস্ট করা না থাকে তবে এটি অনির্ধারিত।
- নথির উৎস
স্ট্রিং ঐচ্ছিক
এই কনটেক্সটের সাথে যুক্ত ডকুমেন্টটির উৎস, অথবা যদি কনটেক্সটটি কোনো ডকুমেন্টে হোস্ট করা না থাকে তবে তা অনির্ধারিত।
- ডকুমেন্টইউআরএল
স্ট্রিং ঐচ্ছিক
এই কনটেক্সটের সাথে সংশ্লিষ্ট ডকুমেন্টের ইউআরএল, অথবা যদি কনটেক্সটটি কোনো ডকুমেন্টে হোস্ট করা না থাকে তবে তা অনির্ধারিত থাকবে।
- ফ্রেমআইডি
সংখ্যা
এই কনটেক্সটের ফ্রেমের আইডি, অথবা -১ যদি এই কনটেক্সটটি কোনো ফ্রেমে হোস্ট করা না থাকে।
- ছদ্মবেশে
বুলিয়ান
প্রসঙ্গটি কোনো ছদ্মবেশী প্রোফাইলের সাথে যুক্ত কিনা।
- ট্যাবআইডি
সংখ্যা
এই কনটেক্সটের জন্য ট্যাবের আইডি, অথবা -১ যদি এই কনটেক্সটটি কোনো ট্যাবে হোস্ট করা না থাকে।
- উইন্ডোআইডি
সংখ্যা
এই কনটেক্সটের জন্য উইন্ডোটির আইডি, অথবা -১ যদি এই কনটেক্সটটি কোনো উইন্ডোতে হোস্ট করা না থাকে।
MessageSender
একটি অবজেক্ট, যা বার্তা বা অনুরোধ প্রেরণকারী স্ক্রিপ্ট কনটেক্সট সম্পর্কিত তথ্য ধারণ করে।
বৈশিষ্ট্য
- ডকুমেন্ট আইডি
স্ট্রিং ঐচ্ছিক
ক্রোম ১০৬+যে ডকুমেন্টটি সংযোগটি খুলেছিল তার UUID।
- ডকুমেন্ট লাইফসাইকেল
স্ট্রিং ঐচ্ছিক
ক্রোম ১০৬+পোর্টটি তৈরি করার সময় যে ডকুমেন্টটি সংযোগটি খুলেছিল, সেটি যে লাইফসাইকেলে ছিল। উল্লেখ্য যে, পোর্ট তৈরির পর থেকে ডকুমেন্টটির লাইফসাইকেল অবস্থা পরিবর্তিত হয়ে থাকতে পারে।
- ফ্রেমআইডি
সংখ্যা ঐচ্ছিক
যে ফ্রেমটি সংযোগটি খুলেছে। শীর্ষ-স্তরের ফ্রেমের জন্য ০, এবং চাইল্ড ফ্রেমের জন্য ধনাত্মক। এটি শুধুমাত্র
tabসেট করার সময়ই নির্ধারিত হবে। - আইডি
স্ট্রিং ঐচ্ছিক
যে এক্সটেনশনটি সংযোগটি খুলেছে তার আইডি, যদি থাকে।
- নেটিভ অ্যাপ্লিকেশন
স্ট্রিং ঐচ্ছিক
ক্রোম ৭৪+সংযোগটি খোলা নেটিভ অ্যাপ্লিকেশনটির নাম, যদি থাকে।
- উৎপত্তি
স্ট্রিং ঐচ্ছিক
ক্রোম ৮০+যে পেজ বা ফ্রেমটি সংযোগটি খুলেছে তার উৎস। এটি ইউআরএল প্রপার্টি থেকে ভিন্ন হতে পারে (যেমন, about:blank) অথবা অস্বচ্ছও হতে পারে (যেমন, স্যান্ডবক্সড আইফ্রেম)। যদি ইউআরএল থেকে তাৎক্ষণিকভাবে উৎসটি বিশ্বাসযোগ্য কিনা তা বোঝা না যায়, তবে এটি শনাক্ত করার জন্য এটি সহায়ক।
- ট্যাব
ট্যাব ঐচ্ছিক
যে
tabs.Tabসংযোগটি খুলেছে (যদি থাকে), সেটি। এই প্রপার্টিটি শুধুমাত্র তখনই উপস্থিত থাকবে যখন সংযোগটি কোনো ট্যাব (কন্টেন্ট স্ক্রিপ্ট সহ) থেকে খোলা হয়েছে, এবং শুধুমাত্র যদি রিসিভারটি একটি এক্সটেনশন হয়, কোনো অ্যাপ না। - tlsChannelId
স্ট্রিং ঐচ্ছিক
যে পেজ বা ফ্রেমটি সংযোগটি খুলেছে, তার TLS চ্যানেল আইডি; যদি এক্সটেনশন দ্বারা অনুরোধ করা হয় এবং তা উপলব্ধ থাকে।
- ইউআরএল
স্ট্রিং ঐচ্ছিক
যে পেজ বা ফ্রেমটি সংযোগটি খুলেছে তার ইউআরএল। যদি প্রেরক একটি আইফ্রেমে থাকে, তবে এটি আইফ্রেমের ইউআরএল হবে, যে পেজটি এটিকে হোস্ট করে তার ইউআরএল নয়।
OnInstalledReason
এই ঘটনাটি প্রেরণ করার কারণ।
এনাম
"ইনস্টল" "আপডেট" "chrome_update" "shared_module_update"
ইভেন্টের কারণ হিসেবে ইনস্টলেশন নির্দিষ্ট করা হয়েছে।
ইভেন্টের কারণ হিসেবে এক্সটেনশন আপডেট নির্দিষ্ট করা হয়েছে।
ইভেন্টের কারণ হিসেবে ক্রোম আপডেট উল্লেখ করা হয়েছে।
ইভেন্টের কারণ হিসেবে একটি শেয়ার্ড মডিউলের আপডেট নির্দিষ্ট করা হয়েছে।
OnRestartRequiredReason
ইভেন্টটি পাঠানোর কারণ। অ্যাপ্লিকেশনটি নতুন সংস্করণে আপডেট হওয়ার কারণে যখন রিস্টার্টের প্রয়োজন হয়, তখন 'app_update' ব্যবহৃত হয়। ব্রাউজার/ওএস নতুন সংস্করণে আপডেট হওয়ার কারণে যখন রিস্টার্টের প্রয়োজন হয়, তখন 'os_update' ব্যবহৃত হয়। এন্টারপ্রাইজ পলিসিতে সেট করা অনুমোদিত আপটাইমের চেয়ে বেশি সময় ধরে সিস্টেম চললে 'periodic' ব্যবহৃত হয়।
এনাম
"অ্যাপ_আপডেট" "os_update" "পর্যায়ক্রমিক"
ইভেন্টের কারণ হিসেবে অ্যাপের একটি আপডেট নির্দিষ্ট করা হয়েছে।
ইভেন্টের কারণ হিসেবে অপারেটিং সিস্টেমের একটি আপডেট নির্দিষ্ট করা হয়েছে।
ইভেন্টের কারণ হিসেবে অ্যাপটির পর্যায়ক্রমিক পুনঃসূচনা নির্দিষ্ট করা হয়েছে।
PlatformArch
মেশিনটির প্রসেসর আর্কিটেকচার।
এনাম
"বাহু" "arm64" "x86-32" "x86-64" "মিপস" "mips64" "riscv64"
প্রসেসর আর্কিটেকচার হিসেবে arm নির্দিষ্ট করা হয়েছে।
প্রসেসর আর্কিটেকচার arm64 হিসেবে নির্দিষ্ট করা হয়েছে।
প্রসেসর আর্কিটেকচার x86-32 হিসেবে নির্দিষ্ট করা হয়েছে।
প্রসেসর আর্কিটেকচার x86-64 হিসেবে নির্দিষ্ট করা হয়েছে।
প্রসেসর আর্কিটেকচারকে mips হিসেবে নির্দিষ্ট করে।
প্রসেসর আর্কিটেকচার হিসেবে mips64 নির্দিষ্ট করা হয়েছে।
প্রসেসর আর্কিটেকচার হিসেবে riscv64 নির্দিষ্ট করা হয়েছে।
PlatformInfo
একটি অবজেক্ট যা বর্তমান প্ল্যাটফর্ম সম্পর্কিত তথ্য ধারণ করে।
বৈশিষ্ট্য
- খিলান
মেশিনটির প্রসেসর আর্কিটেকচার।
- nacl_arch
PlatformNaclArch ঐচ্ছিক
নেটিভ ক্লায়েন্ট আর্কিটেকচার। এটি কিছু প্ল্যাটফর্মে আর্কিটেকচার থেকে ভিন্ন হতে পারে।
- ওএস
যে অপারেটিং সিস্টেমে ক্রোম চলছে।
PlatformNaclArch
নেটিভ ক্লায়েন্ট আর্কিটেকচার। এটি কিছু প্ল্যাটফর্মে আর্কিটেকচার থেকে ভিন্ন হতে পারে।
এনাম
"বাহু" "x86-32" "x86-64" "মিপস" "mips64"
নেটিভ ক্লায়েন্ট আর্কিটেকচার হিসেবে arm নির্দিষ্ট করা হয়েছে।
নেটিভ ক্লায়েন্ট আর্কিটেকচার x86-32 হিসেবে নির্দিষ্ট করা হয়েছে।
নেটিভ ক্লায়েন্ট আর্কিটেকচার x86-64 হিসেবে নির্দিষ্ট করা হয়েছে।
নেটিভ ক্লায়েন্ট আর্কিটেকচারকে mips হিসেবে নির্দিষ্ট করে।
নেটিভ ক্লায়েন্ট আর্কিটেকচার হিসেবে mips64 নির্দিষ্ট করা হয়েছে।
PlatformOs
যে অপারেটিং সিস্টেমে ক্রোম চলছে।
এনাম
"ম্যাক" "জয়" 'অ্যান্ড্রয়েড' "ক্রস" "লিনাক্স" "ওপেনবিএসডি"
ম্যাকওএস অপারেটিং সিস্টেম নির্দিষ্ট করে।
উইন্ডোজ অপারেটিং সিস্টেম নির্দিষ্ট করে।
অ্যান্ড্রয়েড অপারেটিং সিস্টেম নির্দিষ্ট করে।
ক্রোম অপারেটিং সিস্টেম নির্দিষ্ট করে।
লিনাক্স অপারেটিং সিস্টেম নির্দিষ্ট করে।
ওপেনবিএসডি অপারেটিং সিস্টেম নির্দিষ্ট করে।
Port
এমন একটি অবজেক্ট যা অন্যান্য পেজের সাথে দ্বিমুখী যোগাযোগের সুযোগ দেয়। আরও তথ্যের জন্য ‘দীর্ঘস্থায়ী সংযোগ’ দেখুন।
বৈশিষ্ট্য
- নাম
স্ট্রিং
runtime.connectকলে নির্দিষ্ট করা পোর্টের নাম। - সংযোগ বিচ্ছিন্ন
ইভেন্ট<ফাংশনভয়েডভয়েড>
যখন পোর্টটি অপর প্রান্ত(গুলি) থেকে সংযোগ বিচ্ছিন্ন হয় তখন এটি ফায়ার হয়। যদি কোনো ত্রুটির কারণে পোর্টটি সংযোগ বিচ্ছিন্ন হয়, তাহলে
runtime.lastErrorসেট করা হতে পারে। যদি `disconnect` এর মাধ্যমে পোর্টটি বন্ধ করা হয়, তাহলে এই ইভেন্টটি শুধুমাত্র অপর প্রান্তে ফায়ার হয়। এই ইভেন্টটি সর্বাধিক একবার ফায়ার হয় ( পোর্ট লাইফটাইমও দেখুন)।onDisconnect.addListenerফাংশনটি দেখতে এইরকম:(callback: function) => {...}
- বার্তায়
ইভেন্ট<ফাংশনভয়েডভয়েড>
পোর্টের অপর প্রান্ত থেকে postMessage কল করা হলে এই ইভেন্টটি ফায়ার হয়।
onMessage.addListenerফাংশনটি দেখতে এইরকম:(callback: function) => {...}
- প্রেরক
বার্তা প্রেরক ( ঐচ্ছিক)
এই বৈশিষ্ট্যটি শুধুমাত্র onConnect / onConnectExternal / onConnectNative লিসেনারগুলিতে পাঠানো পোর্টগুলিতেই উপস্থিত থাকবে।
- সংযোগ বিচ্ছিন্ন করুন
শূন্যতা
অবিলম্বে পোর্টটি সংযোগ বিচ্ছিন্ন করুন। ইতিমধ্যে সংযোগ বিচ্ছিন্ন থাকা কোনো পোর্টে
disconnect()কল করলে তার কোনো প্রভাব পড়ে না। যখন কোনো পোর্ট সংযোগ বিচ্ছিন্ন করা হয়, তখন সেই পোর্টে কোনো নতুন ইভেন্ট পাঠানো হবে না।disconnectফাংশনটি দেখতে এইরকম:() => {...} - পোস্টমেসেজ
শূন্যতা
পোর্টের অপর প্রান্তে একটি বার্তা পাঠান। পোর্টটি সংযোগ বিচ্ছিন্ন থাকলে একটি ত্রুটি প্রদর্শিত হয়।
The
postMessagefunction looks like:(message: any) => {...}
- বার্তা
যেকোনো
ক্রোম ৫২+প্রেরণ করার জন্য বার্তা। এই অবজেক্টটি অবশ্যই JSON-এ রূপান্তরযোগ্য হতে হবে।
RequestUpdateCheckStatus
আপডেট যাচাইয়ের ফলাফল।
এনাম
"গলা টিপে ধরা" "নো_আপডেট" "আপডেট_উপলব্ধ"
এটি নির্দেশ করে যে স্ট্যাটাস চেকের গতি সীমিত করা হয়েছে। অল্প সময়ের মধ্যে বারবার চেক করার পর এমনটা ঘটতে পারে।
এটি নির্দেশ করে যে ইনস্টল করার জন্য কোনো আপডেট উপলব্ধ নেই।
এটি নির্দেশ করে যে ইনস্টল করার জন্য একটি আপডেট উপলব্ধ আছে।
বৈশিষ্ট্য
id
এক্সটেনশন/অ্যাপটির আইডি।
প্রকার
স্ট্রিং
lastError
কোনো এপিআই ফাংশন কল করতে ব্যর্থ হলে একটি ত্রুটি বার্তা দিয়ে এটি পূরণ করা হয়; অন্যথায় এটি অনির্ধারিত থাকে। এটি শুধুমাত্র সেই ফাংশনের কলব্যাকের আওতার মধ্যেই সংজ্ঞায়িত করা হয়। যদি কোনো ত্রুটি তৈরি হয়, কিন্তু কলব্যাকের মধ্যে runtime.lastError অ্যাক্সেস করা না হয়, তাহলে যে এপিআই ফাংশনটি ত্রুটি তৈরি করেছে তার নাম উল্লেখ করে কনসোলে একটি বার্তা লগ করা হয়। যে এপিআই ফাংশনগুলো প্রমিজ রিটার্ন করে, তারা এই প্রপার্টিটি সেট করে না।
প্রকার
বস্তু
বৈশিষ্ট্য
- বার্তা
স্ট্রিং ঐচ্ছিক
সংঘটিত ত্রুটি সম্পর্কিত বিবরণ।
পদ্ধতি
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
): Port
কোনো এক্সটেনশনের (যেমন ব্যাকগ্রাউন্ড পেজ) বা অন্যান্য এক্সটেনশন/অ্যাপের ভেতরের লিসেনারগুলোর সাথে সংযোগ করার প্রচেষ্টা। এটি কন্টেন্ট স্ক্রিপ্টকে তার এক্সটেনশন প্রসেসের সাথে সংযোগ স্থাপন, অ্যাপ ও এক্সটেনশনের মধ্যে যোগাযোগ এবং ওয়েব মেসেজিংয়ের জন্য উপযোগী। উল্লেখ্য যে, এটি কোনো কন্টেন্ট স্ক্রিপ্টের ভেতরের লিসেনারের সাথে সংযোগ স্থাপন করে না। এক্সটেনশনগুলো tabs.connect এর মাধ্যমে ট্যাবের ভেতরে এমবেড করা কন্টেন্ট স্ক্রিপ্টের সাথে সংযোগ করতে পারে।
প্যারামিটার
- extensionId
স্ট্রিং ঐচ্ছিক
যে এক্সটেনশনের সাথে সংযোগ করতে হবে তার আইডি। এটি উল্লেখ না করলে, আপনার নিজের এক্সটেনশন দিয়ে সংযোগ করার চেষ্টা করা হবে। ওয়েব মেসেজিংয়ের জন্য কোনো ওয়েব পেজ থেকে বার্তা পাঠানোর ক্ষেত্রে এটি আবশ্যক।
- সংযোগ তথ্য
বস্তু ঐচ্ছিক
- টিএলএসচ্যানেলআইডি অন্তর্ভুক্ত করুন
বুলিয়ান ঐচ্ছিক
যেসব প্রসেস কানেকশন ইভেন্টের জন্য লিসেন করছে, তাদের ক্ষেত্রে TLS চ্যানেল আইডিটি onConnectExternal-এ পাস করা হবে কি না।
- নাম
স্ট্রিং ঐচ্ছিক
যেসব প্রসেস কানেকশন ইভেন্টের জন্য অপেক্ষা করছে, তাদের onConnect-এ এটি পাঠানো হবে।
ফেরত
যে পোর্টের মাধ্যমে বার্তা পাঠানো এবং গ্রহণ করা যায়। এক্সটেনশনটি বিদ্যমান না থাকলে পোর্টটির onDisconnect ইভেন্টটি সক্রিয় হয়।
connectNative()
chrome.runtime.connectNative(
application: string,
): Port
হোস্ট মেশিনের একটি নেটিভ অ্যাপ্লিকেশনের সাথে সংযোগ স্থাপন করে। এই পদ্ধতির জন্য "nativeMessaging" অনুমতি প্রয়োজন। আরও তথ্যের জন্য নেটিভ মেসেজিং দেখুন।
প্যারামিটার
- আবেদন
স্ট্রিং
সংযোগ করার জন্য নিবন্ধিত অ্যাপ্লিকেশনটির নাম।
ফেরত
যে পোর্টের মাধ্যমে অ্যাপ্লিকেশনটিতে বার্তা পাঠানো এবং গ্রহণ করা যায়
getBackgroundPage()
chrome.runtime.getBackgroundPage(
callback?: function,
): Promise<Window | undefined>
MV3 এক্সটেনশনগুলিতে ব্যাকগ্রাউন্ড পেজ নেই।
বর্তমান এক্সটেনশন/অ্যাপের মধ্যে চলমান ব্যাকগ্রাউন্ড পেজের জন্য জাভাস্ক্রিপ্ট 'window' অবজেক্টটি পুনরুদ্ধার করে। যদি ব্যাকগ্রাউন্ড পেজটি একটি ইভেন্ট পেজ হয়, তবে সিস্টেম কলব্যাকটি কল করার আগে সেটি লোড হয়েছে কিনা তা নিশ্চিত করবে। যদি কোনো ব্যাকগ্রাউন্ড পেজ না থাকে, তবে একটি ত্রুটি দেখানো হয়।
প্যারামিটার
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(backgroundPage?: Window) => void
- পটভূমি পৃষ্ঠা
জানালা ঐচ্ছিক
ব্যাকগ্রাউন্ড পেজের জন্য জাভাস্ক্রিপ্ট 'window' অবজেক্ট।
ফেরত
প্রতিশ্রুতি<উইন্ডো | অনির্দিষ্ট>
ক্রোম ৯৯+প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
getManifest()
chrome.runtime.getManifest(): object
ম্যানিফেস্ট থেকে অ্যাপ বা এক্সটেনশন সম্পর্কিত বিস্তারিত তথ্য ফেরত দেয়। ফেরত আসা অবজেক্টটি হলো সম্পূর্ণ ম্যানিফেস্ট ফাইলের একটি সিরিয়ালাইজেশন।
ফেরত
বস্তু
ম্যানিফেস্টের বিবরণ।
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
): Promise<DirectoryEntry>
প্যাকেজ ডিরেক্টরির জন্য একটি ডিরেক্টরি এন্ট্রি ফেরত দেয়।
প্যারামিটার
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(directoryEntry: DirectoryEntry) => void
- ডিরেক্টরি এন্ট্রি
ডিরেক্টরি এন্ট্রি
ফেরত
প্রতিশ্রুতি<ডিরেক্টরিএন্ট্রি>
ক্রোম ১২২+প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
): Promise<PlatformInfo>
বর্তমান প্ল্যাটফর্ম সম্পর্কে তথ্য প্রদান করে।
প্যারামিটার
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(platformInfo: PlatformInfo) => void
- প্ল্যাটফর্মইনফো
ফেরত
Promise< PlatformInfo >
Chrome 99+বর্তমান প্ল্যাটফর্ম সম্পর্কিত তথ্যসহ সমাধানযোগ্য প্রতিশ্রুতি।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
getURL()
chrome.runtime.getURL(
path: string,
): string
অ্যাপ/এক্সটেনশন ইনস্টল ডিরেক্টরির মধ্যে থাকা একটি রিলেটিভ পাথকে একটি পূর্ণাঙ্গ URL-এ রূপান্তর করে।
প্যারামিটার
- পথ
স্ট্রিং
কোনো অ্যাপ বা এক্সটেনশনের অভ্যন্তরে থাকা কোনো রিসোর্সের পাথ, যা তার ইনস্টল ডিরেক্টরির সাপেক্ষে প্রকাশ করা হয়।
ফেরত
স্ট্রিং
রিসোর্সটির পূর্ণাঙ্গ URL।
getVersion()
chrome.runtime.getVersion(): string
ম্যানিফেস্টে ঘোষিত এক্সটেনশনটির সংস্করণ ফেরত দেয়।
ফেরত
স্ট্রিং
The extension's version.
openOptionsPage()
chrome.runtime.openOptionsPage(
callback?: function,
): Promise<void>
সম্ভব হলে আপনার এক্সটেনশনের অপশন পেজটি খুলুন।
এর সুনির্দিষ্ট আচরণ আপনার ম্যানিফেস্টের options_ui বা options_page কী-এর উপর, অথবা সেই সময়ে ক্রোম কী সমর্থন করে তার উপর নির্ভর করতে পারে। উদাহরণস্বরূপ, পৃষ্ঠাটি একটি নতুন ট্যাবে, chrome://extensions-এর মধ্যে, কোনো অ্যাপের মধ্যে খোলা হতে পারে, অথবা এটি কেবল একটি খোলা অপশন পৃষ্ঠায় ফোকাস করতে পারে। এটি কখনোই কলার পৃষ্ঠাটিকে রিলোড করবে না।
যদি আপনার এক্সটেনশন কোনো অপশন পেজ ঘোষণা না করে, অথবা অন্য কোনো কারণে ক্রোম তা তৈরি করতে ব্যর্থ হয়, তাহলে কলব্যাকটি lastError সেট করবে।
প্যারামিটার
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
ফেরত
প্রতিশ্রুতি<শূন্য>
Chrome 99+প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
reload()
chrome.runtime.reload(): void
অ্যাপ বা এক্সটেনশনটি পুনরায় লোড করে। এই পদ্ধতিটি কিয়স্ক মোডে সমর্থিত নয়। কিয়স্ক মোডের জন্য, chrome.runtime.restart() পদ্ধতিটি ব্যবহার করুন।
requestUpdateCheck()
chrome.runtime.requestUpdateCheck(
callback?: function,
): Promise<object>
এই অ্যাপ/এক্সটেনশনটির জন্য অবিলম্বে একটি আপডেট যাচাই করার অনুরোধ করা হচ্ছে।
গুরুত্বপূর্ণ : বেশিরভাগ এক্সটেনশন/অ্যাপের এই পদ্ধতিটি ব্যবহার করা উচিত নয় , কারণ ক্রোম ইতিমধ্যেই প্রতি কয়েক ঘণ্টা পর পর স্বয়ংক্রিয়ভাবে পরীক্ষা করে, এবং আপনি requestUpdateCheck কল না করেই runtime.onUpdateAvailable ইভেন্টটি শুনতে পারেন।
এই পদ্ধতিটি শুধুমাত্র খুব সীমিত পরিস্থিতিতেই ব্যবহার করা উপযুক্ত, যেমন যদি আপনার এক্সটেনশন কোনো ব্যাকএন্ড সার্ভিসের সাথে যোগাযোগ করে এবং ব্যাকএন্ড সার্ভিসটি নির্ধারণ করে যে ক্লায়েন্ট এক্সটেনশনের সংস্করণটি অনেক পুরোনো হয়ে গেছে এবং আপনি ব্যবহারকারীকে আপডেট করার জন্য অনুরোধ করতে চান। requestUpdateCheck-এর অন্যান্য বেশিরভাগ ব্যবহার, যেমন একটি পুনরাবৃত্ত টাইমারের উপর ভিত্তি করে এটিকে শর্তহীনভাবে কল করা, সম্ভবত শুধুমাত্র ক্লায়েন্ট, নেটওয়ার্ক এবং সার্ভার রিসোর্স নষ্ট করে।
দ্রষ্টব্য: কোনো কলব্যাকের সাথে কল করা হলে, এই ফাংশনটি একটি অবজেক্ট রিটার্ন করার পরিবর্তে, কলব্যাকে পাস করা দুটি পৃথক আর্গুমেন্ট হিসেবে দুটি প্রোপার্টি রিটার্ন করবে।
প্যারামিটার
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(result: object) => void
- ফলাফল
বস্তু
ক্রোম ১০৯+RequestUpdateCheckResult অবজেক্ট, যা আপডেট চেকের স্ট্যাটাস এবং কোনো আপডেট উপলব্ধ থাকলে তার ফলাফলের বিবরণ ধারণ করে।
- অবস্থা
Result of the update check.
- সংস্করণ
স্ট্রিং ঐচ্ছিক
যদি কোনো আপডেট উপলব্ধ থাকে, তাহলে এতে উপলব্ধ আপডেটের সংস্করণ উল্লেখ থাকে।
ফেরত
প্রতিশ্রুতি<object>
ক্রোম ১০৯+প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
restart()
chrome.runtime.restart(): void
অ্যাপটি কিয়স্ক মোডে চলার সময় ChromeOS ডিভাইসটি রিস্টার্ট করুন। অন্যথায়, এটি কাজ করবে না।
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
): Promise<void>
অ্যাপটি কিয়স্ক মোডে চলার সময় নির্দিষ্ট সেকেন্ড পর ChromeOS ডিভাইসটি রিস্টার্ট করুন। সময় শেষ হওয়ার আগে আবার কল করা হলে, রিবুট বিলম্বিত হবে। -১ মান দিয়ে কল করা হলে, রিবুট বাতিল হয়ে যাবে। নন-কিয়স্ক মোডে এটি কোনো কাজ করে না। শুধুমাত্র প্রথম এক্সটেনশনটি এই API-টি কল করলেই এটি বারবার কল করার অনুমতি আছে।
প্যারামিটার
- সেকেন্ড
সংখ্যা
ডিভাইসটি রিবুট করার আগে কতক্ষণ (সেকেন্ডে) অপেক্ষা করতে হবে, অথবা নির্ধারিত রিবুট বাতিল করতে -১ চাপুন।
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
ফেরত
প্রতিশ্রুতি<শূন্য>
ক্রোম ৯৯+একটি রিস্টার্ট অনুরোধ সফলভাবে পুনঃনির্ধারণ করা হলে যে প্রমিসটি কার্যকর হয়।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
callback?: function,
): Promise<any>
আপনার এক্সটেনশনের মধ্যে অথবা অন্য কোনো এক্সটেনশন/অ্যাপের ইভেন্ট লিসেনারগুলিতে একটিমাত্র মেসেজ পাঠায়। এটি runtime.connect এর মতোই, কিন্তু শুধুমাত্র একটি মেসেজ পাঠায়, সাথে একটি ঐচ্ছিক রেসপন্সও থাকে। যদি আপনার এক্সটেনশনে মেসেজ পাঠানো হয়, তাহলে ` runtime.onMessage ইভেন্টটি আপনার এক্সটেনশনের প্রতিটি ফ্রেমে (প্রেরকের ফ্রেম ছাড়া) ফায়ার হবে, অথবা অন্য কোনো এক্সটেনশনের ক্ষেত্রে runtime.onMessageExternal ফায়ার হবে। মনে রাখবেন, এক্সটেনশনগুলো এই পদ্ধতি ব্যবহার করে কন্টেন্ট স্ক্রিপ্টে মেসেজ পাঠাতে পারে না। কন্টেন্ট স্ক্রিপ্টে মেসেজ পাঠাতে tabs.sendMessage ব্যবহার করুন।
প্যারামিটার
- এক্সটেনশন আইডি
স্ট্রিং ঐচ্ছিক
যে এক্সটেনশনে বার্তাটি পাঠাতে হবে তার আইডি। এটি বাদ দিলে, বার্তাটি আপনার নিজের এক্সটেনশন/অ্যাপে পাঠানো হবে। ওয়েব মেসেজিংয়ের জন্য কোনো ওয়েব পেজ থেকে বার্তা পাঠানোর ক্ষেত্রে এটি আবশ্যক।
- বার্তা
যেকোনো
প্রেরণ করার জন্য বার্তা। এই বার্তাটি একটি JSON-উপযোগী অবজেক্ট হওয়া উচিত।
- বিকল্পগুলি
বস্তু ঐচ্ছিক
- includeTlsChannelId
বুলিয়ান ঐচ্ছিক
যেসব প্রসেস কানেকশন ইভেন্টের জন্য লিসেন করছে, তাদের ক্ষেত্রে TLS চ্যানেল আইডিটি onMessageExternal-এ পাস করা হবে কি না।
- কলব্যাক
ফাংশন ঐচ্ছিক
ক্রোম ৯৯+callbackপ্যারামিটারটি দেখতে এইরকম:(response: any) => void
- প্রতিক্রিয়া
যেকোনো
মেসেজের হ্যান্ডলার দ্বারা প্রেরিত JSON রেসপন্স অবজেক্ট। এক্সটেনশনের সাথে সংযোগ করার সময় কোনো ত্রুটি ঘটলে, কলব্যাকটি কোনো আর্গুমেন্ট ছাড়াই কল করা হবে এবং
runtime.lastErrorকে ত্রুটির মেসেজে সেট করা হবে।
ফেরত
প্রতিশ্রুতি<যেকোনো>
ক্রোম ৯৯+ক্রোম ৯৯-এ এক্সটেনশন কনটেক্সটের জন্য প্রমিজ সাপোর্ট যোগ করা হয়েছিল। কোনো ওয়েব পেজ থেকে এক্সটেনশনের সাথে যোগাযোগের ক্ষেত্রে, ক্রোম ১১৮ থেকে প্রমিজ ব্যবহার করা যায়।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
): Promise<any>
একটি নেটিভ অ্যাপ্লিকেশনে একটিমাত্র বার্তা পাঠান। এই পদ্ধতির জন্য "nativeMessaging" অনুমতি প্রয়োজন।
প্যারামিটার
- আবেদন
স্ট্রিং
নেটিভ মেসেজিং হোস্টের নাম।
- বার্তা
বস্তু
যে বার্তাটি নেটিভ মেসেজিং হোস্টের কাছে পাঠানো হবে।
- কলব্যাক
ফাংশন ঐচ্ছিক
ক্রোম ৯৯+callbackপ্যারামিটারটি দেখতে এইরকম:(response: any) => void
- প্রতিক্রিয়া
যেকোনো
নেটিভ মেসেজিং হোস্ট দ্বারা প্রেরিত প্রতিক্রিয়া বার্তা। নেটিভ মেসেজিং হোস্টে সংযোগ করার সময় কোনো ত্রুটি ঘটলে, কলব্যাকটি কোনো আর্গুমেন্ট ছাড়াই কল করা হবে এবং
runtime.lastErrorকে ত্রুটির বার্তায় সেট করা হবে।
ফেরত
Promise<any>
ক্রোম ৯৯+প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
): Promise<void>
আনইনস্টল করার সময় যে ইউআরএলটি ভিজিট করা হবে, তা নির্ধারণ করে। এটি সার্ভার-সাইড ডেটা পরিষ্কার করতে, অ্যানালিটিক্স করতে এবং জরিপ পরিচালনা করতে ব্যবহার করা যেতে পারে। সর্বোচ্চ ১০২৩ অক্ষর।
প্যারামিটার
- ইউআরএল
স্ট্রিং
এক্সটেনশনটি আনইনস্টল করার পর যে URL-টি খোলা হবে। এই URL-টিতে অবশ্যই http: বা https: স্কিম থাকতে হবে। আনইনস্টল করার সময় নতুন ট্যাব না খোলার জন্য একটি খালি স্ট্রিং সেট করুন।
- কলব্যাক
ফাংশন ঐচ্ছিক
ক্রোম ৪৫+callbackপ্যারামিটারটি দেখতে এইরকম:() => void
ফেরত
প্রতিশ্রুতি<শূন্য>
ক্রোম ৯৯+আনইনস্টল ইউআরএল সেট করা হলে এই প্রমিসটি রিজলভ হয়। প্রদত্ত ইউআরএলটি অবৈধ হলে, প্রমিসটি রিজেক্ট হয়ে যাবে।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
ইভেন্টগুলি
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
Please use runtime.onRestartRequired .
যখন ক্রোমের কোনো আপডেট উপলব্ধ হয়, কিন্তু ব্রাউজার রিস্টার্ট করার প্রয়োজন হওয়ায় তা সঙ্গে সঙ্গে ইনস্টল হয় না, তখন এই বার্তাটি প্রদর্শিত হয়।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
যখন কোনো এক্সটেনশন প্রসেস বা কন্টেন্ট স্ক্রিপ্ট থেকে ( runtime.connect এর মাধ্যমে) সংযোগ স্থাপন করা হয়, তখন এটি ট্রিগার হয়।
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
অন্য কোনো এক্সটেনশন থেকে ( runtime.connect এর মাধ্যমে), অথবা বাহ্যিকভাবে সংযোগযোগ্য কোনো ওয়েবসাইট থেকে সংযোগ স্থাপন করা হলে এটি ট্রিগার হয়।
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
নেটিভ অ্যাপ্লিকেশন থেকে সংযোগ স্থাপন করা হলে এই ইভেন্টটি ট্রিগার হয়। এই ইভেন্টের জন্য "nativeMessaging" পারমিশন প্রয়োজন। এটি শুধুমাত্র ক্রোম ওএস-এ সমর্থিত।
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
এক্সটেনশনটি প্রথমবার ইনস্টল করার সময়, এক্সটেনশনটি নতুন সংস্করণে আপডেট করার সময় এবং ক্রোম নতুন সংস্করণে আপডেট করার সময় এটি কার্যকর হয়।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(details: object) => void
- বিস্তারিত
বস্তু
- আইডি
স্ট্রিং ঐচ্ছিক
আপডেট হওয়া ইম্পোর্টেড শেয়ার্ড মডিউল এক্সটেনশনটির আইডি নির্দেশ করে। এটি শুধুমাত্র তখনই উপস্থিত থাকে যখন 'reason' হয় 'shared_module_update'।
- previousVersion
স্ট্রিং ঐচ্ছিক
এক্সটেনশনটির পূর্ববর্তী সংস্করণ নির্দেশ করে, যা এইমাত্র আপডেট করা হয়েছে। এটি শুধুমাত্র তখনই উপস্থিত থাকে যখন 'কারণ' হিসেবে 'আপডেট' উল্লেখ থাকে।
- কারণ
এই ঘটনাটি প্রেরণ করার কারণ।
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
runtime.sendMessage অথবা tabs.sendMessage থেকে কোনো বার্তা পাঠানো হলে এটি সক্রিয় হয়।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined
- বার্তা
যেকোনো
- প্রেরক
- প্রতিক্রিয়া পাঠান
ফাংশন
The
sendResponseparameter looks like:(response?: any) => void
- প্রতিক্রিয়া
any optional
The response to return to the message sender.
- ফেরত
boolean | Promise<any> | undefined
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
অন্য কোনো এক্সটেনশন থেকে ( runtime.sendMessage ব্যবহার করে) বার্তা পাঠানো হলে এটি চালু হয়। এটি কোনো কন্টেন্ট স্ক্রিপ্টে ব্যবহার করা যায় না।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined
- বার্তা
যেকোনো
- প্রেরক
- sendResponse
ফাংশন
The
sendResponseparameter looks like:(response?: any) => void
- প্রতিক্রিয়া
যেকোনো ঐচ্ছিক
The response to return to the message sender.
- ফেরত
boolean | Promise<any> | undefined
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
যখন কোনো অ্যাপ বা সেটি যে ডিভাইসে চলে, তা রিস্টার্ট করার প্রয়োজন হয়, তখন এই ইভেন্টটি ট্রিগার হয়। রিস্টার্ট প্রক্রিয়াটি সম্পন্ন করার জন্য, অ্যাপটির উচিত যত তাড়াতাড়ি সম্ভব তার সমস্ত উইন্ডো বন্ধ করে দেওয়া। যদি অ্যাপটি কিছু না করে, তবে ২৪-ঘণ্টার একটি নির্দিষ্ট সময় অতিবাহিত হওয়ার পর রিস্টার্টটি বাধ্যতামূলকভাবে কার্যকর করা হবে। বর্তমানে, এই ইভেন্টটি শুধুমাত্র Chrome OS কিয়স্ক অ্যাপগুলোর জন্য ট্রিগার হয়।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(reason: OnRestartRequiredReason) => void
onStartup
chrome.runtime.onStartup.addListener(
callback: function,
)
এই এক্সটেনশনটি ইনস্টল করা আছে এমন কোনো প্রোফাইল প্রথমবার চালু হলে এই ইভেন্টটি ফায়ার হয়। কোনো ইনকগনিটো প্রোফাইল চালু করা হলে এই ইভেন্টটি ফায়ার হয় না, এমনকি যদি এই এক্সটেনশনটি 'স্প্লিট' ইনকগনিটো মোডেও কাজ করে।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
onSuspend
chrome.runtime.onSuspend.addListener(
callback: function,
)
ইভেন্ট পেজটি আনলোড হওয়ার ঠিক আগে এটি পাঠানো হয়। এটি এক্সটেনশনটিকে কিছু পরিষ্করণ করার সুযোগ দেয়। মনে রাখবেন, যেহেতু পেজটি আনলোড হচ্ছে, তাই এই ইভেন্টটি পরিচালনা করার সময় শুরু হওয়া কোনো অ্যাসিঙ্ক্রোনাস অপারেশন সম্পূর্ণ হবেই এমন কোনো নিশ্চয়তা নেই। যদি আনলোড হওয়ার আগে ইভেন্ট পেজটিতে আরও কোনো কার্যকলাপ ঘটে, তাহলে onSuspendCanceled ইভেন্টটি পাঠানো হবে এবং পেজটি আনলোড হবে না।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
onSuspendCanceled
chrome.runtime.onSuspendCanceled.addListener(
callback: function,
)
onSuspend-এর পরে এটি পাঠানো হয় এটা বোঝাতে যে, অ্যাপটি শেষ পর্যন্ত আনলোড করা হবে না।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
onUpdateAvailable
chrome.runtime.onUpdateAvailable.addListener(
callback: function,
)
যখন কোনো আপডেট উপলব্ধ হয়, তখন এই ইভেন্টটি ফায়ার হয়, কিন্তু অ্যাপটি চালু থাকার কারণে তা সঙ্গে সঙ্গে ইনস্টল হয় না। আপনি যদি কিছু না করেন, তাহলে ব্যাকগ্রাউন্ড পেজটি পরবর্তীবার আনলোড হওয়ার সময় আপডেটটি ইনস্টল হয়ে যাবে। যদি আপনি চান যে এটি আরও দ্রুত ইনস্টল হোক, তাহলে আপনি স্পষ্টভাবে chrome.runtime.reload() কল করতে পারেন। যদি আপনার এক্সটেনশনটি একটি পার্সিস্টেন্ট ব্যাকগ্রাউন্ড পেজ ব্যবহার করে, তাহলে সেই ব্যাকগ্রাউন্ড পেজটি স্বাভাবিকভাবেই কখনও আনলোড হয় না। তাই, এই ইভেন্টের প্রতিক্রিয়ায় আপনি নিজে থেকে chrome.runtime.reload() কল না করলে, পরবর্তীবার ক্রোম নিজে রিস্টার্ট না হওয়া পর্যন্ত আপডেটটি ইনস্টল হবে না। যদি কোনো হ্যান্ডলার এই ইভেন্টটি শোনার জন্য প্রস্তুত না থাকে এবং আপনার এক্সটেনশনে একটি পার্সিস্টেন্ট ব্যাকগ্রাউন্ড পেজ থাকে, তাহলে এটি এমনভাবে কাজ করে যেন এই ইভেন্টের প্রতিক্রিয়ায় chrome.runtime.reload() কল করা হয়েছে।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(details: object) => void
- বিস্তারিত
বস্তু
- সংস্করণ
স্ট্রিং
উপলব্ধ আপডেটের সংস্করণ নম্বর।