মাল্টি-অরিজিন ট্রাস্টেড ওয়েব অ্যাক্টিভিটি, মাল্টি-অরিজিন ট্রাস্টেড ওয়েব অ্যাক্টিভিটি

আন্দ্রে সিপ্রিয়ানি বান্দারা
André Cipriani Bandarra

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

ff-অরিজিন নেভিগেশন

একটি বিশ্বস্ত ওয়েব অ্যাক্টিভিটি পূর্ণ-স্ক্রীনে বিষয়বস্তু দেখানোর জন্য ডিজিটাল সম্পদ লিঙ্কগুলি ব্যবহার করে যাচাইকরণের জন্য উন্মুক্ত হওয়া প্রয়োজন।

যখন একজন ব্যবহারকারী যাচাইকৃত মূল থেকে নেভিগেট করে, কাস্টম ট্যাব UI দেখানো হয়। কাস্টম ট্যাবের URL বারটি ব্যবহারকারীদের বলে যে তারা এখন অ্যাপ্লিকেশনের বাইরে একটি ডোমেনে নেভিগেট করছে, পাশাপাশি ব্যবহারকারীকে একটি X বোতাম প্রদান করে যা তাদের দ্রুত বৈধ মূলে ফিরে যেতে দেয়।

কিন্তু ওয়েব অ্যাপস-এর জন্য একাধিক উৎপত্তির অভিজ্ঞতা তৈরি করাও সাধারণ - এক��ি উদাহরণ হতে পারে www.example.com- এ প্রধান অভিজ্ঞতা সহ একটি শপিং অ্যাপ্লিকেশন, যখন চেকআউট প্রবাহ checkout.example.com- এ হোস্ট করা হয়।

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

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

একাধিক উত্সের জন্য বৈধতা সেট আপ করা হচ্ছে৷

মূল উৎসের মতো, ডিজিটাল অ্যাসেট লিঙ্কের মাধ্যমে বৈধতা অর্জন করা হয় এবং যাচাই করার জন্য প্রতিটি ডোমেনের নিজস্ব assetlinks.json ফাইল থাকতে হবে।

www.example.com এবং checkout.example.com এর সাথে আমাদের উদাহরণে, আমাদের থাকবে:

  • https://www.example.com/.well-known/assetlinks.json
  • https://checkout.example.com/.well-known/assetlinks.json

যেহেতু প্রতিটি ডোমেন একই অ্যান্ড্রয়েড অ্যাপ্লিকেশনের সাথে সংযুক্ত হচ্ছে, তাই assetlinks.json ফাইলগুলি দেখতে একই রকম।

অ্যান্ড্রয়েড অ্যাপ্লিকেশনের জন্য প্যাকেজের নাম ধরে নিলাম com.example.twa , উভয় assetlink.json ফাইলেই নিম্নলিখিতগুলির মতো কিছু থাকবে:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
  "namespace": "android_app",
  "package_name": "com.example",
   "sha256_cert_fingerprints": ["..."]}
}]

অ্যান্ড্রয়েড অ্যাপ্লিকেশনে একাধিক উত্স যোগ করুন

অ্যান্ড্রয়েড অ্যাপ্লিকেশানে, asset_statements ঘোষণাকে আপডেট করা দরকার যাতে যাচাই করা ��রকার ������ স����্�� উত্স রয়েছে:

<string name="asset_statements">
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://www.example.com\"
    }
}],
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://checkout.example.com\"
    }
}],
</string>

লঞ্চার অ্যাক্টিভিটিতে অতিরিক্ত উৎস যোগ করুন

ডিফল্ট লঞ্চার অ্যাক্টিভিটি ব্যবহার করে

android-browser-helper সাপোর্ট লাইব্রেরির অংশ লঞ্চার অ্যাক্টিভিটি অ্যান্ড্রয়েড প্রোজেক্ট কনফিগার করে যাচাই LauncherActivity জন্য একাধিক অরিজিন যোগ করার একটি উপায় প্রদান করে।

প্রথমে, res/values/strings.xml ফাইলে একটি string-array উপাদান যোগ করুন। যাচাই করার জন্য প্রতিটি অতিরিক্ত URL একটি item উপ-উপাদানের মধ্যে থাকবে:

...
<string-array name="additional_trusted_origins">
    <item>https://www.google.com</item>
</string-array>
...

এরপরে, বিদ্যমান কার্যকলাপ উপাদানের ভিতরে একটি নতুন meta-data ট্যাগ যোগ করুন যা AndroidManifest.xml এর ভিতরে LauncherActivity উল্লেখ করে :

...
<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
    android:label="@string/app_name">


    <meta-data
        android:name="android.support.customtabs.trusted.ADDITIONAL_TRUSTED_ORIGINS"
        android:resource="@array/additional_trusted_origins" />


    ...
</activity>
...

একটি কাস্টম লঞ্চার কার্যকলাপ ব্যবহার করে৷

ট্রাস্টেড ওয়েব অ্যাক্টিভিটি লঞ্চ করার জন্য কাস্টম কোড ব্যবহার করার সময়, ট্রাস্টেড ওয়েব অ্যাক্টিভিটি লঞ্চ করার উদ্দেশ্য তৈরি করার সময় setAdditionalTrustedOrigins কল ��রে অতিরিক্ত উত্স যোগ করা যেতে পারে:

public void launcherWithMultipleOrigins(View view) {
  List<String> origins = Arrays.asList(
      "https://checkout.example.com/"
  );


  TrustedWebActivityIntentBuilder builder = new TrustedWebActivityIntentBuilder(LAUNCH_URI)
      .setAdditionalTrustedOrigins(origins);


  new TwaLauncher(this).launch(builder, null, null);
}

উপসংহার

এই পদক্ষেপগুলির সাথে, বিশ্বস্ত ওয়েব কার্যকলাপ এখন একাধিক উত্স সমর্থন করার জন্য প্রস্তুত৷ android-browser-helper এর মাল্টি অরিজিন ট্রাস্টেড ওয়েব অ্যাক্টিভিটিগুলির জন্য একটি নমুনা অ্যাপ্লিকেশন রয়েছে৷ এটা চেক নিশ্চিত করুন.

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

ডিজিটাল সম্পদ লিঙ্ক সেট আপ করার জন্য কয়েকটি চলমান অংশ রয়েছে। যদি অ্যাপ্লিকেশনটি এখনও উপরে কাস্টম ট্যাব বার দেখায়, তাহলে সম্ভবত কনফিগারেশনে কিছু ভুল আছে।

ট্রাস্টেড ওয়েব অ্যাক্টিভিটি কুইক স্টার্ট গাইডে ডিজিটাল অ্যাসেট লিঙ্কের সমস্যাগুলি কীভাবে ডিবাগ করা যায় সে সম্পর্কে একটি দুর্দান্ত সমস্যা সমাধানের বিভাগ রয়েছে।

এছাড়াও রয়েছে আশ্চর্যজনক পিটারস অ্যাসেট লিংক টুল , যা ডিভাইসে ইন্সটল করা অ্যাপ্লিকেশানগুলিতে ডিজিটাল অ্যাসেট লিঙ্ক ডিবাগিং করতে সাহায্য করে।