ওয়েব শেয়ার টার্গেট API এর সাথে শেয়ার করা ডেটা গ্রহণ করা হচ্ছে

ওয়েব শেয়ার টার্গেট API এর মাধ্যমে মোবাইল এবং ডেস্কটপে শেয়ার করা সহজ করা হয়েছে

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

অতীতে, শুধুমাত্র প্ল্যাটফর্ম-নির্দিষ্ট অ্যাপগুলি অন্যান্য ইনস্টল করা অ্যাপ থেকে শেয়ার পেতে অপারেটিং সিস্টেমের সাথে নিবন্ধন করতে পারত। কিন্তু ওয়েব শেয়ার টার্গেট API-এর সাথে, ইনস্টল করা ওয়েব অ্যাপগুলি শেয়ার করা বিষয়বস্তু পাওয়ার জন্য শেয়ার টার্গেট হিসাবে অন্তর্নিহিত অপারেটিং সিস্টেমের সাথে নিবন্ধন করতে পারে।

অ্যান্ড্রয়েড ফোনে 'শেয়ারের মাধ্যমে' ড্রয়ার খোলা।
একটি বিকল্প হিসাবে ইনস্টল করা PWA সহ সিস্টেম-স্তরের শেয়ার টার্গেট পিকার।

কর্মে ওয়েব শেয়ার লক্ষ্য দেখুন

  1. অ্যান্ড্রয়েডের জন্য Chrome 76 বা তার পরে, অথবা ডেস্কটপে Chrome 89 বা তার পরে ব্যবহার করে, ওয়েব শেয়ার টার্গেট ডেমো খুলুন।
  2. প্রম্পট করা হলে, আপনার হোম স্ক্রিনে অ্যাপটি যোগ করতে ইনস্টল ক্লিক করুন, অথবা আপনার হোম স্ক্রিনে এটি যোগ করতে Chrome মেনু ব্যবহার করুন।
  3. শেয়ারিং সমর্থন করে এমন যেকোনো অ্যাপ খুলুন বা ডেমো অ্যাপে শেয়ার বোতামটি ব্যবহার করুন।
  4. টার্গেট পিকার থেকে, ওয়েব শেয়ার টেস্ট বেছে নিন।

শেয়ার করার পর, আপনি ওয়েব শেয়ার টার্গেট ওয়েব অ্যাপে শেয়ার করা সমস্ত তথ্য দেখতে পাবেন।

শেয়ার টার্গেট হিসাবে আপনার অ্যাপ নিবন্ধন করুন

আপনার অ্যাপটিকে শেয়ারের লক্ষ্য হিসাবে নিবন্ধন করতে, এটিকে Chrome-এর ইনস্টলযোগ্যতার মানদণ্ড পূরণ করতে হবে৷ এছাড়াও, কোনও ব্যবহারকারী আপনার অ্যাপে শেয়ার করার আগে, তাদের অবশ্যই এটি তাদের হোম স্ক্রিনে যোগ করতে হবে। এটি সাইটগুলিকে এলোমেলোভাবে ব্যবহারকারীর শেয়ারের অভিপ্রায় চয়নকারীতে নিজেদের যুক্ত করতে বাধা দেয় এবং নিশ্চিত করে যে শেয়ার করা এমন কিছু যা ব্যবহারকারীরা আপনার অ্যাপের সাথে করতে চায়৷

আপনার ওয়েব অ্যাপ ম্যানিফেস্ট আপডেট করুন

শেয়ার টার্গেট হিসেবে আপনার অ্যাপ নিবন্ধন করতে, এর ওয়েব অ্যাপ ম্যানিফেস্টে একটি share_target এন্ট্রি যোগ করুন। এটি অপারেটিং সিস্টেমকে উদ্দেশ্য চয়নকারীতে আপনার অ্যাপটিকে একটি বিকল্প হিসাবে অন্তর্ভুক্ত করতে বলে৷ আপনি ম্যানিফেস্টে যা যোগ করেন তা আপনার অ্যাপ যে ডেটা গ্রহণ করবে তা নিয়ন্ত্রণ করে। share_target এন্ট্রির জন্য তিনটি সাধারণ পরিস্থিতি রয়েছে:

  • মৌলিক তথ্য গ্রহণ
  • আবেদন পরিবর্তন গ্রহণ
  • ফাইল গ্রহণ

মৌলিক তথ্য গ্রহণ

যদি আপনার টার্গেট অ্যাপ শুধুমাত্র ডেটা, লিঙ্ক এবং টেক্সটের মতো প্রাথমিক তথ্য গ্রহণ করে, তাহলে manifest.json ফাইলে নিম্নলিখিতগুলি যোগ করুন:

"share_target": {
  "action": "/share-target/",
  "method": "GET",
  "params": {
    "title": "title",
    "text": "text",
    "url": "url"
  }
}

আপনার অ্যাপ্লিকেশানের যদি ইতিমধ্যেই একটি শেয়ার URL স্কিম থাকে, তাহলে আপনি আপনার বিদ্যমান ক্যোয়ারী প্যারামিটারগুলির সাথে params মানগুলি প্রতিস্থাপন করতে পারেন৷ উদাহরণস্বরূপ, যদি আপনার শেয়ার URL স্কিম text পরিবর্তে body ব্যবহার করে, আপনি "text": "text" এর পরিবর্তে "text": "body" ব্যবহার করতে পারেন।

প্রদত্ত না হলে method মান "GET" তে ডিফল্ট হয়৷ enctype ক্ষেত্র, এই উদাহরণে দেখানো হয়নি, ডেটার জন্য এনকোডিংয়ের ধরন নির্দেশ করে। "GET" পদ্ধতির জন্য, enctype ডিফল্ট "application/x-www-form-urlencoded" এবং অন্য কিছুতে সেট করা থাকলে উপেক্ষা করা হয়।

আবেদন পরিবর্তন গ্রহণ

ভাগ করা ডেটা যদি কোনোভাবে লক্ষ্য অ্যাপকে পরিবর্তন করে—উদাহরণস্বরূপ, লক্ষ্য অ্যাপ্লিকেশনে একটি বুকমার্ক সংরক্ষণ করা— method মানটিকে "POST" এ সেট করুন এবং enctype ক্ষেত্র অন্তর্ভুক্ত করুন। নীচের উদাহরণটি লক্ষ্য অ্যাপে একটি বুকমার্ক তৈরি করে, তাই এটি method জন্য "POST" এবং enctype জন্য "multipart/form-data" ব্যবহার করে:

{
  "name": "Bookmark",
  "share_target": {
    "action": "/bookmark",
    "method": "POST",
    "enctype": "multipart/form-data",
    "params": {
      "url": "link"
    }
  }
}

ফাইল গ্রহণ

অ্যাপ্লিকেশন পরিবর্তনের মতো, ফাইলগুলি গ্রহণ করার জন্য সেই method "POST" হওয়া প্রয়োজন এবং enctype উপস্থিত থাকতে হবে। অতিরিক্তভাবে, enctype অবশ্যই "multipart/form-data" হতে হবে, এবং একটি files এন্ট্রি অবশ্যই যোগ করতে হবে।

আপনাকে অবশ্যই একটি files অ্যারে যোগ করতে হবে যাতে আপনার অ্যাপ যে ধরনের ফাইলগুলি গ্রহণ করে তা নির্ধারণ করে৷ অ্যারে উপাদান দুটি সদস্যের এন্ট্রি: একটি name ক্ষেত্র এবং একটি accept ক্ষেত্র। accept ক্ষেত্রটি একটি MIME প্রকার, একটি ফাইল এক্সটেনশন, বা উভয়ই সমন্বিত একটি অ্যারে নেয়। একটি MIME প্রকার এবং একটি ফাইল এক্সটেনশন উভয়ই অন্তর্ভুক্ত করে এমন একটি অ্যারে প্রদান করা ভাল কারণ অপারেটিং সিস্টেমগুলি তাদের পছন্দের মধ্যে আলাদা।

{
  "name": "Aggregator",
  "share_target": {
    "action": "/cgi-bin/aggregate",
    "method": "POST",
    "enctype": "multipart/form-data",
    "params": {
      "title": "name",
      "text": "description",
      "url": "link",
      "files": [
        {
          "name": "records",
          "accept": ["text/csv", ".csv"]
        },
        {
          "name": "graphs",
          "accept": "image/svg+xml"
        }
      ]
    }
  }
}

আগত বিষয়বস্তু পরিচালনা করুন

আপনি ইনকামিং শেয়ার করা ডেটার সাথে কীভাবে মোকাবিলা করবেন তা আপনার উপর নির্ভর করে এবং আপনার অ্যাপের উপর নির্ভর করে। যেমন:

  • একটি ইমেল ক্লায়েন্ট একটি ইমেলের বিষয় হিসাবে title ব্যবহার করে একটি নতুন ইমেল খসড়া করতে পারে, text এবং url বডি হিসাবে একসাথে সংযুক্ত করে।
  • একটি সামাজিক নেটওয়ার্কিং অ্যাপ title উপেক্ষা করে একটি নতুন পোস্টের খসড়া তৈরি করতে পারে, বার্তার মূল অংশ হিসাবে text ব্যবহার করে এবং একটি লিঙ্ক হিসাবে url যোগ করে৷ text অনুপস্থিত থাকলে, অ্যাপটি শরীরের মধ্যেও url ব্যবহার করতে পারে। url অনুপস্থিত থাকলে, অ্যাপটি একটি URL খুঁজতে text স্ক্যান করতে পারে এবং একটি লিঙ্ক হিসেবে যোগ করতে পারে।
  • একটি ফটো শেয়ারিং অ্যাপ স্লাইডশো শিরোনাম হিসাবে title , বিবরণ হিসাবে text এবং স্লাইডশো চিত্র হিসাবে files ব্যবহার করে একটি নতুন স্লাইডশো তৈরি করতে পারে।
  • একটি টেক্সট মেসেজিং অ্যাপ text এবং url একসাথে সংযুক্ত করে এবং title বাদ দিয়ে একটি নতুন বার্তার খসড়া তৈরি করতে পারে।

GET শেয়ার প্রক্রিয়া করা হচ্ছে

যদি ব্যবহারকারী আপনার অ্যাপ্লিকেশন নির্বাচন করে, এবং আপনার method "GET" (ডিফল্ট), ব্রাউজারটি action URL এ একটি নতুন উইন্ডো খোলে। ব্রাউজার তারপর ম্যানিফেস্টে সরবরাহ করা URL-এনকোডেড মান ব্যবহার করে একটি ক্যোয়ারী স্ট্রিং তৈরি করে। উদাহরণস্বরূপ, যদি শেয়ারিং অ্যাপটি title এবং text সরবরাহ করে, প্রশ্ন স্ট্রিংটি হল ?title=hello&text=world । এটি প্রক্রিয়া করতে, আপনার ফোরগ্রাউন্ড পৃষ্ঠায় একটি DOMContentLoaded ইভেন্ট লিসেনার ব্যবহার করুন এবং ক্যোয়ারী স্ট্রিং পার্স করুন:

window.addEventListener('DOMContentLoaded', () => {
  const parsedUrl = new URL(window.location);
  // searchParams.get() will properly handle decoding the values.
  console.log('Title shared: ' + parsedUrl.searchParams.get('title'));
  console.log('Text shared: ' + parsedUrl.searchParams.get('text'));
  console.log('URL shared: ' + parsedUrl.searchParams.get('url'));
});

action পৃষ্ঠাটি প্রিক্যাচ করার জন্য একজন পরিষেবা কর্মী ব্যবহার করতে ভুলবেন না যাতে ব্যবহারকারী অফলাইনে থাকলেও এটি দ্রুত লোড হয় এবং নির্ভরযোগ্যভাবে কাজ করে। ওয়ার্কবক্স হল একটি টুল যা আপনাকে আপনার সার্ভিস ওয়ার্কারে প্রিক্যাচিং প্রয়োগ করতে সাহায্য করতে পারে।

POST শেয়ার প্রক্রিয়াকরণ

যদি আপনার method "POST" হয়, যেমনটি হবে যদি আপনার টার্গেট অ্যাপ একটি সংরক্ষিত বুকমার্ক বা শেয়ার করা ফাইল গ্রহণ করে, তাহলে ইনকামিং POST অনুরোধের মূল অংশে শেয়ারিং অ্যাপ্লিকেশন দ্বারা পাস করা ডেটা থাকে, ম্যানিফেস্টে প্রদত্ত enctype মান ব্যবহার করে এনকোড করা হয়। .

ফোরগ্রাউন্ড পৃষ্ঠা সরাসরি এই ডেটা প্রক্রিয়া করতে পারে না। যেহেতু পৃষ্ঠাটি একটি অনুরোধ হিসাবে ডেটা দেখে, তাই পৃষ্ঠাটি এটি পরিষেবা কর্মীকে পাঠায়, যেখানে আপনি একটি fetch শ্রোতার সাথে এটিকে আটকাতে পারেন৷ এখান থেকে, আপনি postMessage() ব্যবহার করে ফোরগ্রাউন্ড পৃষ্ঠায় ডেটা পাঠাতে পারেন বা সার্ভারে পাঠাতে পারেন:

self.addEventListener('fetch', event => {
  const url = new URL(event.request.url);
  // If this is an incoming POST request for the
  // registered "action" URL, respond to it.
  if (event.request.method === 'POST' &&
      url.pathname === '/bookmark') {
    event.respondWith((async () => {
      const formData = await event.request.formData();
      const link = formData.get('link') || '';
      const responseUrl = await saveBookmark(link);
      return Response.redirect(responseUrl, 303);
    })());
  }
});

ভাগ করা বিষয়বস্তু যাচাই করা হচ্ছে

একটি অ্যান্ড্রয়েড ফোন শেয়ার করা সামগ্রী সহ ডেমো অ্যাপ প্রদর্শন করছে৷
নমুনা শেয়ারিং টার্গেট অ্যাপ।

ইনকামিং ডেটা যাচাই করতে ভুলবেন না। দুর্ভাগ্যবশত এমন কোন গ্যারান্টি নেই যে অন্যান্য অ্যাপ সঠিক প্যারামিটারে উপযুক্ত বিষয়বস্তু শেয়ার করবে।

উদাহরণস্বরূপ, Android এ, url ক্ষেত্রটি খালি থাকবে কারণ এটি Android এর শেয়ার সিস্টেমে সমর্থিত নয়৷ পরিবর্তে, URLগুলি প্রায়শই text ক্ষেত্রে বা মাঝে মাঝে title ক্ষেত্রে প্রদর্শিত হবে৷

ব্রাউজার সমর্থন

ওয়েব শেয়ার টার্গেট API নীচে বর্ণিত হিসাবে সমর্থিত:

সমস্ত প্ল্যাটফর্মে, শেয়ার করা ডেটা পাওয়ার জন্য একটি সম্ভাব্য লক্ষ্য হিসাবে প্রদর্শিত হওয়ার আগে আপনার ওয়েব অ্যাপটি ইনস্টল করতে হবে।

নমুনা অ্যাপ্লিকেশন

API এর জন্য সমর্থন দেখান

আপনি কি ওয়েব শেয়ার টার্গেট API ব্যবহার করার পরিকল্পনা করছেন? আপনার সর্বজনীন সমর্থন Chromium টিমকে বৈশিষ্ট্যগুলিকে অগ্রাধিকার দিতে সাহায্য করে এবং অন্যান্য ব্রাউজার বিক্রেতাদের দেখায় যে তাদের সমর্থন করা কতটা গুরুত্বপূর্ণ৷

হ্যাশট্যাগ #WebShareTarget ব্যবহার করে @ChromiumDev- এ একটি টুইট পাঠান এবং আপনি কোথায় এবং কীভাবে এটি ব্যবহার করছেন তা আমাদের জানান।