আপনি যদি আপনার ক্রোম এক্সটেনশনে ভূ-অবস্থানের তথ্য পেতে চান, তাহলে যেকোন ওয়েবসাইট সাধারনত একই navigator.geolocation ওয়েব প্ল্যাটফর্ম API ব্যবহার করুন। এই নিবন্ধটি বিদ্যমান কারণ ক্রোম এক্সটেনশনগুলি ওয়েবসাইটের চেয়ে আলাদাভাবে সংবেদনশীল ডেটা অ্যাক্সেস করার অনুমতি পরিচালনা করে৷ ভূ-অবস্থান অত্যন্ত সংবেদনশীল ডেটা, তাই ব্রাউজারগুলি নিশ্চিত করে যে ব্যবহারকারীরা তাদের সঠিক অবস্থান কখন এবং কোথায় ভাগ করা হবে তা সম্পূর্ণরূপে সচেতন এবং নিয়ন্ত্রণে রয়েছে৷
MV3 এক্সটেনশনে ভূ-অবস্থান ব্যবহার করুন
ওয়েবে, ব্রাউজারগুলি ব্যবহারকারীদের ভৌগলিক অবস্থানের ডেটাকে তাদের অবস্থানে সেই নির্দিষ্ট উত্স অ্যাক্সেস দেওয়ার জন্য অনুরোধ করে একটি প্রম্পট দেখিয়ে সুরক্ষা দেয়৷ একই অনুমতি মডেল সবসময় এক্সটেনশনের জন্য উপযুক্ত নয়।

অনুমতি শুধুমাত্র পার্থক্য নয়. উপরে উল্লিখিত হিসাবে, navigator.geolocation হল একটি DOM API, অর্থাৎ এমন কিছু যা API-এর একটি অংশ যা ওয়েবসাইট তৈরি করে। ফলস্বরূপ, এটি কর্মী প্রসঙ্গের মধ্যে অ্যাক্সেসযোগ্য নয়, যেমন এক্সটেনশন পরিষেবা কর্মী যা ম্যানিফেস্ট v3 এক্সটেনশনগুলির মেরুদণ্ড। যদিও আপনি এখনও geolocation ব্যবহার করতে পারেন। আপনি কীভাবে এবং কোথায় এটি ব্যবহার করবেন তার সাথে কেবলমাত্র সূক্ষ্মতা রয়েছে।
পরিষেবা কর্মীদের মধ্যে ভূ-অবস্থান ব্যবহার করুন
সেবা কর্মীদের ভিতরে কোন navigator বস্তু নেই. এটি কেবলমাত্র সেই প্রসঙ্গগুলির ভিতরে উপলব্ধ যা একটি পৃষ্ঠার document বস্তুতে অ্যাক্সেস রয়েছে৷ একটি পরিষেবা কর্মীর ভিতরে অ্যাক্সেস পেতে, একটি Offscreen Document ব্যবহার করুন, যা একটি HTML ফাইলে অ্যাক্সেস প্রদান করে যা আপনি আপনার এক্সটেনশনের সাথে বান্ডিল করতে পারেন৷
শুরু করতে, আপনার ম্যানিফেস্টের "permissions" বিভাগে "offscreen" যোগ করুন।
manifest.json:
{
"name": "My extension",
...
"permissions": [
...
"offscreen"
],
...
}
"offscreen" অনুমতি যোগ করার পরে, আপনার এক্সটেনশনে একটি HTML ফাইল যোগ করুন যাতে আপনার অফস্ক্রিন নথি অন্তর্ভুক্ত থাকে। এই ক্ষেত্রে পৃষ্ঠার কোনো বিষয়বস্তু ব্যবহার করা হচ্ছে না, তাই এটি প্রায় ফাঁকা ফাইল হতে পারে। এটি শুধুমাত্র একটি ছোট HTML ফাইল হতে হবে যা আপনার স্ক্রিপ্টে লোড হয়।
offscreen.html:
<!doctype html>
<title>offscreenDocument</title>
<script src="offscreen.js"></script>
এই ফাইলটিকে আপনার প্রোজেক্টের রুটে offscreen.html হিসাবে সংরক্ষণ করুন।
উল্লিখিত হিসাবে, আপনার offscreen.js নামে একটি স্ক্রিপ্ট প্রয়োজন। আপনাকে এটিকে আপনার এক্সটেনশনের সাথে বান্ডিল করতে হবে। এটি হবে ভৌগলিক অবস্থানের তথ্যের পরিষেবা কর্মীর উৎস৷ আপনি এটি এবং আপনার পরিষেবা কর্মীর মধ্যে বার্তা পাঠাতে পারেন৷
offscreen.js:
chrome.runtime.onMessage.addListener(handleMessages);
function handleMessages(message, sender, sendResponse) {
// Return early if this message isn't meant for the offscreen document.
if (message.target !== 'offscreen') {
return;
}
if (message.type !== 'get-geolocation') {
console.warn(