বিশ্বস্ত ওয়েব কার্যকলাপে ওয়েব শেয়ার টার্গেট সক্ষম করুন৷

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

Chrome 86 দিয়ে শুরু করে, ওয়েব শেয়ার টার্গেট এখন বিশ্বস্ত ওয়েব অ্যাক্টিভিটি ব্যবহার করে অ্যাপ্লিকেশানগুলিতেও উপলব্ধ৷ যদিও PWA এর বাক্সের বাইরে কাজ করা উচিত, Android অ্যাপ্লিকেশনে কয়েকটি পরিবর্তন প্রয়োজন।

এই নিবন্ধটি অনুমান করে যে বিকাশকারী বিশ্বস্ত ওয়েব ক্রিয়াকলাপগুলির সাথে পরিচিত৷ যে পাঠকরা প্রযুক্তিতে নতুন তারা ইন্টিগ্রেশন গাইডের সাথে শুরু করতে পারেন৷

একই লাইনে, PWA-তে ওয়েব শেয়ার টার্গেট বাস্তবায়নের সম্পূর্ণ ব্যাখ্যা সুযোগের বাইরে এবং বিকাশকারীরা এই নিবন্ধে আরও তথ্য পেতে পারেন।

https://scrapbook-pwa.web.app/- এ ডেমো অ্যাপ্লিকেশনটি এই নিবন্ধটির জন্য PWA হিসাবে ব্যবহার করা হবে, এবং এর উত্স কোড GitHub- এ উপলব্ধ, এবং Android অ্যাপ্লিকেশনটি মৌলিক বিশ্বস্ত ওয়েব অ্যাক্টিভিটি ডেমোর উপর ভিত্তি করে।

অ্যান্ড্রয়েড অ্যাপে ওয়েব শেয়ার টার্গেট যোগ করুন

ওয়েব শেয়ার টার্গেট বাস্তবায়নের জন্য একটি বিদ্যমান বিশ্বস্ত ওয়েব অ্যাক্টিভিটি ভিত্তিক অ্যাপ্লিকেশন সংশোধন করার জন্য, তিনটি ভিন্ন ফাইলে পরিবর্তন প্রয়োজন:

build.gradle

অ্যান্ড্রয়েড-ব্রাউজার-হেল্পার লাইব্রেরিটি ওয়েব শেয়ার টার্গেটের সমর্থনে আপডেট করা হয়েছে। প্রথম ধাপ হিসেবে, 2.0.1 এর সমান বা উচ্চতর সংস্করণ ব্যবহার করতে অ্যাপ্লিকেশন আপডেট করুন।

dependencies {
    ...
    implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.2.0'
}

res/strings.xml

অ্যাপ্লিকেশানটিকে বিশ্বস্ত ওয়েব অ্যাক্টিভিটিকে জানাতে হবে যে ভাগ করে নেওয়ার বিষয়টি এটি সমর্থন করে, যেমন কোন Urls খুলতে হবে, কোন পদ্ধতি ব্যবহার করা হবে এবং মাইম-টাইপ সমর্থিত৷

এটি একটি JSON-এর মাধ্যমে করা হয়, যা একটি স্ট্রিং রিসোর্স সহ বিশ্বস্ত ওয়েব কার্যকলাপে উপলব্ধ করা হয়৷ ক্ষেত্রগুলি ওয়েব ম্যানিফেস্টে উপলব্ধ share_target ক্ষেত্রের মতোই এবং দুটি গুরুত্বপূর্ণ নোট সহ strings.xml ভিতরের একটি স্ট্রিং-এ যোগ করা যেতে পারে:

  1. অ্যাকশন অ্যাট্রিবিউটের মান অবশ্যই মূল ইউআরএল সহ সম্পূর্ণ ইউআরএল হতে হবে।
  2. দ্বৈত উদ্ধৃতি অবশ্যই এড়িয়ে যেতে হবে, যাতে প্রতিটি " হয়ে যায় \"

https://scrapbook-pwa.web.app/manifest.json- এর share_target বিভাগটি এভাবে দেখায়:

{
  ...
  "share_target": {
    "action": "/_share-target",
    "enctype": "multipart/form-data",
    "method": "POST",
    "params": {
      "files": [{
        "name": "media",
        "accept": [
          "audio/*",
          "image/*",
          "video/*"
        ]
      }]
    }
  },
  ...
}

এবং নতুন স্ট্রিং উপাদান নিম্নলিখিত মত দেখাবে:

<string name="share_target">
{
    \"action\": \"https://twa-web-scrapbook.web.app/_share-target\",
    \"method\": \"POST\",
    \"enctype\": \"multipart/form-data\",
    \"params\": {
      \"files\": [{
          \"name\": \"media\",
          \"accept\": [\"image/*\", \"audio/*\", \"video/*\"]
      }]
    }
}
</string>

AndroidManifest.xml

অ্যান্ড্রয়েড ম্যানিফেস্টে কয়েকটি পরিবর্তন প্রয়োজন। প্রথমে আমাদের নিশ্চিত করতে হবে যে DelegationService সার্ভিস ঘোষিত, রপ্তানি এবং সক্ষম করা হয়েছে।

বিকাশকারীরা যারা মৌলিক ডেমোর উপর ভিত্তি করে তাদের অ্যাপ্লিকেশন তৈরি করেছেন তাদের ইতিমধ্যেই পরিষেবাটি অন্তর্ভুক্ত থাকবে এবং মার্কআপটি অ্যাপ্লিকেশন ট্যাগের ভিতরে থাকা উচিত এবং নিম্নলিখিতগুলির মতো দেখতে হবে:

<service
    android:name="com.google.androidbrowserhelper.trusted.DelegationService"
    android:enabled="true"
    android:exported="true">

    <intent-filter>
        <action android:name="android.support.customtabs.trusted.TRUSTED_WEB_ACTIVITY_SERVICE"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</service>

অবশেষে, LauncherActivity কার্যকলাপ ট্যাগে দুটি নতুন আইটেম যোগ করতে হবে: - একটি meta-data ট্যাগ যা strings.xml-এ সংজ্ঞায়িত JSON-কে উল্লেখ করে। - একটি intent-filter যা ঘোষণা করে যে অ্যাপ্লিকেশনটি কোন মাইম-টাইপগুলি ডিভাইসের অন্যান্য অ্যাপে পরিচালনা করতে সক্ষম।

<meta-data
    android:name="android.support.customtabs.trusted.METADATA_SHARE_TARGET"
    android:resource="@string/share_target"/>

<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <action android:name="android.intent.action.SEND_MULTIPLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="audio/*" />
    <data android:mimeType="image/*" />
    <data android:mimeType="video/*" />
</intent-filter>

উপরের মার্কআপে যেমন দেখা যায়, share_target JSON-এ ঘোষিত প্রতিটি mime-type জন্য একটি data উপাদান যোগ করা উচিত।

উপসংহার

ওয়েব শেয়ার টার্গেট ইন্টিগ্রেশন একটি বিশ্বস্ত ওয়েব অ্যাক্টিভিটির ভিতরে PWA গুলিকে একটি Android ডিভাইসে ইনস্টল করা অন্যান্য অ্যাপ্লিকেশনগুলির সাথে আরও গভীরভাবে একত্রিত হতে সক্ষম করে৷

উপরের ধাপে যেমন বর্ণনা করা হয়েছে, ট্রাস্টেড ওয়েব অ্যাক্টিভিটি ব্যবহার করে এমন একটি বিদ্যমান অ্যান্ড্রয়েড অ্যাপে API-এর জন্য সমর্থন যোগ করার জন্য যে অতিরিক্ত মার্কআপ প্রয়োজন তা অ্যান্ড্রয়েড-ব্রাউজার-হেল্পার দ্বারা সহজ করা হয়েছে।

প্রগ্রেসিভ ওয়েব অ্যাপ থেকে কীভাবে বিষয়বস্তু শেয়ার করতে হয় তা শিখতে PWA-তে API ব্যবহার করে আরও জানতে ওয়েব শেয়ার টার্গেট নিবন্ধটি দেখুন এবং ওয়েব শেয়ার এপিআই

সমস্যা সমাধান

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

যখন অ্যাপ্লিকেশনটি একটি বিকল্প হিসাবে দেখায় না, তখন এটি নির্দেশ করে যে intent-filter ভুল। intent-filter মার্কআপটি দুবার চেক করুন, নিশ্চিত করুন যে এটিতে অ্যাপ্লিকেশন দ্বারা পরিচালিত সঠিক ক্রিয়া, বিভাগ এবং mime-types রয়েছে।

আমার অ্যাপ্লিকেশন একটি বিকল্প হিসাবে দেখায়, PWA শুরু হয়েছে, কিন্তু ডেটা ভাগ করা হয় না।

এর কারণ হতে পারে এমন কয়েকটি বিষয় রয়েছে। এটি দেখতে জিনিসগুলির একটি চেকলিস্ট:

  • নিশ্চিত করুন যে ডিজিটাল সম্পদ লিঙ্কের বৈধতা সফল হয়েছে।
  • সঠিকতার জন্য strings.xml-এর ভিতরে JSON চেক করুন।