কোনও এক্সটেনশানটি কীভাবে জানতে পারে যে এটি প্রথমবারের মতো চলছে বা সবেমাত্র আপডেট হয়েছে, যাতে এক্সটেনশনটি নির্দিষ্ট কিছু ক্রিয়া সম্পাদন করতে পারে? (যেমন একটি সহায়তা পৃষ্ঠা খুলুন বা সেটিংস আপডেট করুন)
কোনও এক্সটেনশানটি কীভাবে জানতে পারে যে এটি প্রথমবারের মতো চলছে বা সবেমাত্র আপডেট হয়েছে, যাতে এক্সটেনশনটি নির্দিষ্ট কিছু ক্রিয়া সম্পাদন করতে পারে? (যেমন একটি সহায়তা পৃষ্ঠা খুলুন বা সেটিংস আপডেট করুন)
উত্তর:
ক্রোমের নতুন সংস্করণগুলিতে (যেহেতু ক্রোম 22), আপনি chrome.runtime.onInstalled
ইভেন্টটি ব্যবহার করতে পারেন যা অনেক বেশি পরিষ্কার।
উদাহরণ:
// Check whether new version is installed
chrome.runtime.onInstalled.addListener(function(details){
if(details.reason == "install"){
console.log("This is a first install!");
}else if(details.reason == "update"){
var thisVersion = chrome.runtime.getManifest().version;
console.log("Updated from " + details.previousVersion + " to " + thisVersion + "!");
}
});
ম্যানিফেস্টের v3 প্রতিবিম্বিত আপডেট উত্তর:
ক্রোমিয়ামে এখন এপিআই- এর একটি ক্রোম.আরুনটাইম সেট রয়েছে যা আপনাকে এক্সটেনশানের সংস্করণ আনতে দেয়।
বর্তমান সংস্করণটি পেতে:
chrome.runtime.getManifest().version
যখন এক্সটেনশানটি প্রথম ইনস্টল করা হয়েছে তখন যখন এক্সটেনশানটি কোনও নতুন সংস্করণে আপডেট হবে এবং যখন ক্রোমিয়ামটি নতুন সংস্করণে আপডেট হয় তখন আপনি onInstalled
ইভেন্টটি ব্যবহার করতে পারেন listen
chrome.runtime.onInstalled.addListener((details) => {
const currentVersion = chrome.runtime.getManifest().version
const previousVersion = details.previousVersion
const reason = details.reason
console.log('Previous Version: ${previousVersion }')
console.log('Current Version: ${currentVersion }')
switch (reason) {
case 'install':
console.log('New User installed the extension.')
break;
case 'update':
console.log('User has updated their extension.')
break;
case 'chrome_update':
case 'shared_module_update':
default:
console.log('Other install events within the browser')
break;
}
})
এখানেই শেষ!
পুরানো উত্তর, 2011 এর আগে
আপনি যদি এক্সটেনশনটি ইনস্টল করেছেন বা আপডেট হয়েছে কিনা তা পরীক্ষা করতে চান, আপনি এই জাতীয় কিছু করতে পারেন:
function onInstall() {
console.log("Extension Installed");
}
function onUpdate() {
console.log("Extension Updated");
}
function getVersion() {
var details = chrome.app.getDetails();
return details.version;
}
// Check if the version has changed.
var currVersion = getVersion();
var prevVersion = localStorage['version']
if (currVersion != prevVersion) {
// Check if we just installed this extension.
if (typeof prevVersion == 'undefined') {
onInstall();
} else {
onUpdate();
}
localStorage['version'] = currVersion;
}
prevVersion == 'undefined'
... তিনি যাচাই করছেন typeof prevVersion == 'undefined'
। এটা অনেক আরো জোরালো হয় ব্যবহার করতে typeof
যখন একটি পরিবর্তনশীল undefined হয় পরীক্ষা করা হচ্ছে ... এখানে দেখতে কেন শিখতে stackoverflow.com/a/3550319/130691
ভাগ্যক্রমে, এখন ঘটনা আছে জন্য (ক্রোম সংস্করণ 22, এবং আপডেট ইভেন্টের জন্য 25)।
ইনস্টলড ইভেন্টের জন্য:
chrome.runtime.onInstalled.addListener(function() {...});
অন-আপডেট উপলভ্য ইভেন্টের জন্য:
chrome.runtime.onUpdateAvailable.addListener(function() {...});
বিকাশকারী দস্তাবেজগুলি থেকে অনউপেটে উপলব্ধ সম্পর্কে একটি গুরুত্বপূর্ণ অংশ বলেছেন:
আপডেট উপলভ্য হলে ফায়ার করা হয়েছে, তবে তত্ক্ষণাত ইনস্টল করা হয়নি কারণ বর্তমানে অ্যাপটি চলছে is আপনি যদি কিছু না করেন তবে পরবর্তী সময় ব্যাকগ্রাউন্ড পৃষ্ঠাটি লোড হওয়ার পরে আপডেটটি ইনস্টল হয়ে যাবে, আপনি যদি এটি ইনস্টল করতে চান তাড়াতাড়ি আপনি chrome.runtime.reload () এ কল করতে পারেন।
সরল। যখন এক্সটেনশনটি প্রথম চালিত হয় তখন thelocalStorage
তা খালি থাকে। প্রথম রান করার পরে, ফলস্বরূপ সমস্ত ফলাফল রান না করে চিহ্নিত করতে আপনি সেখানে একটি পতাকা লিখতে পারেন।
পটভূমিতে উদাহরণ, htm:
var first_run = false;
if (!localStorage['ran_before']) {
first_run = true;
localStorage['ran_before'] = '1';
}
if (first_run) alert('This is the first run!');
সম্পাদনা: এক্সটেনশনটি সবেমাত্র আপডেট হয়েছে কিনা তা যাচাই করতে, প্রথম রান করার সময় সাধারণ পতাকার পরিবর্তে সংস্করণটি সংরক্ষণ করুন, তারপরে যখন বর্তমান এক্সটেনশন সংস্করণটি ( XmlHttpRequest
ম্যানিফেস্টটি ইঙ্গিত করে এটি অর্জন করুন ) সঞ্চিত মানের সাথে সমান হয় না localStorage
, এক্সটেনশনটি আপডেট করা হয়েছে।
localStorage
নিজস্ব পৃথক উইন্ডোতে রয়েছে এবং পাতায় অন্য কোড এবং এক্সটেনশানগুলির সাথে @ হুইজের উল্লেখ অনুসারে ভাগ করে নেওয়া না হওয়ায় এটি ব্যাকগ্রাউন্ড পৃষ্ঠাগুলিতে ব্যবহারের জন্য একটি নির্দিষ্ট সমাধান । এক্সটেনশনের ক্ষেত্রে, তবে এটি ক্ষেত্রে নয়।