Android অ্যাপ লিঙ্ক যোগ করুন

Android অ্যাপ লিঙ্ক হল HTTP URL যা ব্যবহারকারীদের সরাসরি আপনার Android অ্যাপের নির্দিষ্ট কন্টেন্টে নিয়ে যায়। Android অ্যাপ লিঙ্ক আপনার অ্যাপে আরও ট্রাফিক নিয়ে আসতে পারে, কোন অ্যাপ কন্টেন্ট সবচেয়ে বেশি ব্যবহার করা হয় তা খুঁজে পেতে আপনাকে সাহায্য করে এবং ইনস্টল করা অ্যাপে ব্যবহারকারীদের কন্টেন্ট খুঁজে পাওয়া ও শেয়ার করা আরও সহজ করে তোলে।

Android অ্যাপ লিঙ্কের জন্য সহায়তা যোগ করতে:

  1. আপনার ম্যানিফেস্টে ইনটেন্ট ফিল্টার তৈরি করুন।
  2. ইনকামিং লিঙ্ক ম্যানেজ করতে আপনার অ্যাপের অ্যাক্টিভিটিতে কোড যোগ করুন।
  3. ডিজিটাল অ্যাসেট লিঙ্কের মাধ্যমে আপনার অ্যাপ ও ওয়েবসাইট অ্যাসোসিয়েট করুন।

Android Studio-তে অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট ধাপে-ধাপে উইজার্ডের মাধ্যমে প্রসেসটি সহজ করে তোলে, যেমন নিচে বর্ণনা করা হয়েছে।

অ্যাপ লিঙ্ক কীভাবে কাজ করে এবং এর সুবিধাগুলি সম্পর্কে আরও তথ্যের জন্য, Android অ্যাপ লিঙ্ক ম্যানেজ করা নিবন্ধটি পড়ুন।

ইনটেন্ট ফিল্টার যোগ করুন

Android Studio-তে অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট আপনাকে ম্যানিফেস্টে ইনটেন্ট ফিল্টার তৈরি করতে এবং আপনার ওয়েবসাইটের বর্তমান URL-কে আপনার অ্যাপের অ্যাক্টিভিটিতে ম্যাপ করতে সাহায্য করতে পারে। অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট ইনটেন্ট ম্যানেজ করার জন্য প্রতিটি সংশ্লিষ্ট অ্যাক্টিভিটিতে টেমপ্লেট কোডও যোগ করে।

ইনটেন্ট ফিল্টার ও URL ম্যানেজমেন্ট যোগ করতে, এইসব ধাপ অনুসরণ করুন:

  1. টুল > অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট বিকল্প বেছে নিন।
  2. URL ম্যাপিং এডিটর খুলুন বিকল্পে ক্লিক করুন এবং তারপরে নতুন URL ম্যাপিং যোগ করতে URL ম্যাপিং তালিকার নিচে যোগ করুন বিকল্পে ক্লিক করুন।
  3. নতুন URL ম্যাপিংয়ের জন্য বিবরণ যোগ করুন:

    অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট আপনাকে প্রাথমিক URL ম্যাপিংয়ের মাধ্যমে গাইড করে

    ছবি ১. আপনার অ্যাপের অ্যাক্টিভিটিতে URL ম্যাপ করতে আপনার সাইটের লিঙ্ক স্ট্রাকচার সম্পর্কে প্রাথমিক বিবরণ যোগ করুন।

    1. হোস্ট ফিল্ডে আপনার ওয়েবসাইটের URL লিখুন।
    2. আপনি যে URL ম্যাপ করতে চান তার জন্য path, pathPrefix, অথবা pathPattern যোগ করুন।

      যেমন, আপনার যদি রেসিপি শেয়ার করার অ্যাপ থাকে এবং সব রেসিপি একই অ্যাক্টিভিটিতে উপলভ্য থাকে এবং আপনার সংশ্লিষ্ট ওয়েবসাইটের রেসিপিগুলি একই /recipe ডিরেক্টরিতে থাকে, তাহলে pathPrefix ব্যবহার করুন এবং /recipe লিখুন। এইভাবে, URL http://www.recipe-app.com/recipe/grilled-potato-salad, নিম্নলিখিত ধাপে আপনার বেছে নেওয়া অ্যাক্টিভিটির সাথে ম্যাপ করা হয়।

    3. URL-এর মাধ্যমে ব্যবহারকারীকে যে অ্যাক্টিভিটিতে নিয়ে যাওয়া হবে সেটি বেছে নিন।
    4. ঠিক আছে বিকল্পে ক্লিক করুন।

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

    এছাড়াও, প্রধান অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট টুল উইন্ডো AndroidManifest.xml ফাইলে আগে থেকে থাকা সব ডিপ লিঙ্ক দেখায় এবং সব ম্যানিফেস্ট সংক্রান্ত সমস্যার সমাধান করুন বিকল্পে ক্লিক করে আপনি যেকোনও ভুল কনফিগারেশন দ্রুত ঠিক করতে পারবেন।

    অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট আপনাকে মেনিফেস্টের ভুল কনফিগারেশন ঠিক করতে দেয়।

    মনে রাখবেন: আপনার অ্যাপ আপডেট না করেই ভবিষ্যতের লিঙ্ক কাজ করার জন্য, এমন একটি URL ম্যাপিং নির্ধারণ করুন যা আপনার যোগ করার পরিকল্পনা করা URL-এর সাথে কাজ করে। এছাড়াও, আপনার অ্যাপের হোম স্ক্রিনের জন্য একটি URL অন্তর্ভুক্ত করুন যাতে এটি সার্চ ফলাফলে অন্তর্ভুক্ত হয়।

  4. আপনার URL ম্যাপিং সঠিকভাবে কাজ করছে কিনা তা যাচাই করতে, URL ম্যাপিং চেক করুন ফিল্ডে একটি URL লিখুন।

    এটি সঠিকভাবে কাজ করলে, আপনি যে URL লিখেছেন সেটি আপনার বেছে নেওয়া অ্যাক্টিভিটির সাথে ম্যাপ করা হয়েছে বলে সফলতার মেসেজ দেখায়।

ইনকামিং লিঙ্ক ম্যানেজ করুন

আপনার URL ম্যাপিং সঠিকভাবে কাজ করছে কিনা তা যাচাই করার পরে, আপনার তৈরি করা ইনটেন্ট ম্যানেজ করার জন্য লজিক যোগ করুন:

  1. অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট থেকে অ্যাক্টিভিটি বেছে নিন বিকল্পে ক্লিক করুন।
  2. তালিকা থেকে কোনও অ্যাক্টিভিটি বেছে নিয়ে কোড যোগ করুন বিকল্পে ক্লিক করুন।

অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট আপনার অ্যাক্টিভিটিতে কোড যোগ করে, যা নিম্নলিখিত কোডের মতো:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    ...
    // ATTENTION: This was auto-generated to handle app links.
    val appLinkIntent: Intent = intent
    val appLinkAction: String? = appLinkIntent.action
    val appLinkData: Uri? = appLinkIntent.data
    ...
}

জাভা

@Override
void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    // ATTENTION: This was auto-generated to handle app links.
    Intent appLinkIntent = getIntent();
    String appLinkAction = appLinkIntent.getAction();
    Uri appLinkData = appLinkIntent.getData();
    ...
}

এই কোডটি সম্পূর্ণ নয়। আপনাকে এখন appLinkData-এ URI-এর উপর ভিত্তি করে একটি অ্যাকশন নিতে হবে, যেমন সংশ্লিষ্ট কন্টেন্ট দেখানো। যেমন, রেসিপি শেয়ারিং অ্যাপের জন্য আপনার কোড নিম্নলিখিত স্যাম্পেলের মতো দেখতে হতে পারে:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    ...
    handleIntent(intent)
}

override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    handleIntent(intent)
}

private fun handleIntent(intent: Intent) {
    val appLinkAction = intent.action
    val appLinkData: Uri? = intent.data
    if (Intent.ACTION_VIEW == appLinkAction) {
        appLinkData?.lastPathSegment?.also { recipeId ->
            Uri.parse("content://com.recipe_app/recipe/")
                    .buildUpon()
                    .appendPath(recipeId)
                    .build().also { appData ->
                        showRecipe(appData)
                    }
        }
    }
}

জাভা

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ...
  handleIntent(getIntent());
}

protected void onNewIntent(Intent intent) {
  super.onNewIntent(intent);
  handleIntent(intent);
}

private void handleIntent(Intent intent) {
    String appLinkAction = intent.getAction();
    Uri appLinkData = intent.getData();
    if (Intent.ACTION_VIEW.equals(appLinkAction) && appLinkData != null){
        String recipeId = appLinkData.getLastPathSegment();
        Uri appData = Uri.parse("content://com.recipe_app/recipe/").buildUpon()
            .appendPath(recipeId).build();
        showRecipe(appData);
    }
}

আপনার অ্যাপকে ওয়েবসাইটের সাথে যুক্ত করুন

আপনার অ্যাপের জন্য URL সাপোর্ট সেট-আপ করার পরে, অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট একটি ডিজিটাল অ্যাসেট লিঙ্ক ফাইল তৈরি করে যা আপনি আপনার অ্যাপের সাথে আপনার ওয়েবসাইট অ্যাসোসিয়েট করতে ব্যবহার করতে পারবেন।

ডিজিটাল অ্যাসেট লিঙ্ক ফাইল ব্যবহার করার বিকল্প হিসেবে, আপনি Search Console-এ আপনার সাইট ও অ্যাপ অ্যাসোসিয়েট করতে পারেন।

আপনি যদি অ্যাপের জন্য Play অ্যাপ সাইনিং ব্যবহার করেন, তাহলে অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্টের তৈরি করা সার্টিফিকেট ফিঙ্গারপ্রিন্ট সাধারণত ব্যবহারকারীর ডিভাইসের সাথে মেলে না। এই ক্ষেত্রে, আপনার অ্যাপের জন্য সঠিক ডিজিটাল অ্যাসেট লিঙ্ক JSON স্নিপেট Release > Setup > App signing-এর অধীনে আপনার Play Console ডেভেলপার অ্যাকাউন্টে খুঁজে পেতে পারেন।

অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট ব্যবহার করে আপনার অ্যাপ ও ওয়েবসাইট অ্যাসোসিয়েট করতে, অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট থেকে ডিজিটাল অ্যাসেট লিঙ্ক ফাইল জেনারেটর খুলুন বিকল্পে ক্লিক করুন এবং এইসব ধাপ অনুসরণ করুন:

অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট আপনাকে প্রাথমিক URL ম্যাপিংয়ের মাধ্যমে গাইড করে

ছবি ২. ডিজিটাল অ্যাসেট লিঙ্ক ফাইল তৈরি করতে আপনার সাইট ও অ্যাপ সম্পর্কে বিবরণ লিখুন।

  1. আপনার সাইট ডোমেন এবং আপনার অ্যাপ্লিকেশন আইডি লিখুন।
  2. আপনার ডিজিটাল অ্যাসেট লিঙ্ক ফাইলে এক-ট্যাপে সাইন-ইন-এর জন্য সহায়তা অন্তর্ভুক্ত করতে, অ্যাপ এবং ওয়েবসাইটের মধ্যে ক্রেডেনশিয়াল শেয়ার করার জন্য সহায়তা বিকল্প বেছে নিন এবং আপনার সাইটের সাইন-ইন URL লিখুন। এটি আপনার ডিজিটাল অ্যাসেট লিঙ্ক ফাইলে নিম্নলিখিত স্ট্রিং যোগ করে যা ঘোষণা করে যে আপনার অ্যাপ এবং ওয়েবসাইট সাইন-ইন ক্রেডেনশিয়াল শেয়ার করে: delegate_permission/common.get_login_creds.

  3. সাইনিং কনফিগারেশন নির্দিষ্ট করুন অথবা কীস্টোর ফাইল বেছে নিন।

    আপনার অ্যাপের রিলিজ বিল্ডের জন্য সঠিক রিলিজ কনফিগারেশন বা কীস্টোর ফাইল অথবা ডিবাগ বিল্ডের জন্য ডিবাগ কনফিগারেশন বা কীস্টোর ফাইল বেছে নিয়েছেন কিনা তা ভাল করে দেখে নিন। আপনি প্রোডাকশন বিল্ড সেট-আপ করতে চাইলে, রিলিজ কনফিগারেশন ব্যবহার করুন। আপনার বিল্ড পরীক্ষা করতে চাইলে, ডিবাগ কনফিগারেশন ব্যবহার করুন।

  4. ডিজিটাল অ্যাসেট লিঙ্ক ফাইল তৈরি করুন বিকল্পে ক্লিক করুন।
  5. Android Studio ফাইলটি জেনারেট করার পরে, সেটি ডাউনলোড করতে ফাইল সেভ করুন বিকল্পে ক্লিক করুন।
  6. https://yoursite/.well-known/assetlinks.json-এ, আপনার সাইটে assetlinks.json ফাইল আপলোড করুন, যাতে প্রত্যেকে সেটি পড়তে পারেন।

    গুরুত্বপূর্ণ: সিস্টেম এনক্রিপ্ট করা HTTPS প্রোটোকলের মাধ্যমে ডিজিটাল অ্যাসেট লিঙ্ক ফাইল যাচাই করে। আপনার অ্যাপের ইনটেন্ট ফিল্টারে https অন্তর্ভুক্ত থাকুক বা না থাকুক, assetlinks.json ফাইলটি যেন HTTPS কানেকশনের মাধ্যমে অ্যাক্সেস করা যায় তা নিশ্চিত করুন।

  7. আপনি সঠিক লোকেশনে সঠিক ডিজিটাল অ্যাসেট লিঙ্ক ফাইল আপলোড করেছেন কিনা তা কনফার্ম করতে, লিঙ্ক ও যাচাই করুন বিকল্পে ক্লিক করুন।

অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্ট আপনার ওয়েবসাইটে প্রকাশ করা উচিত এমন ডিজিটাল অ্যাসেট লিঙ্ক ফাইল যাচাই করতে পারে। ম্যানিফেস্ট ফাইলে ঘোষণা করা প্রতিটি ডোমেনের জন্য, Assistant আপনার ওয়েবসাইটে ফাইলটি পার্স করে, যাচাইকরণ চেক করে এবং কোনও ত্রুটি কীভাবে ঠিক করতে হবে তার বিস্তারিত ব্যাখ্যা প্রদান করে।

ওয়েবসাইট অ্যাসোসিয়েশন ঘোষণা করুন লিঙ্কে গিয়ে ডিজিটাল অ্যাসেট লিঙ্ক ফাইলের মাধ্যমে আপনার অ্যাপের সাথে ওয়েবসাইট অ্যাসোসিয়েট করার ব্যাপারে আরও জানুন।

আপনার Android অ্যাপ লিঙ্ক পরীক্ষা করা

আপনার লিঙ্ক সঠিক অ্যাক্টিভিটি খুলছে কিনা তা যাচাই করতে, এইসব ধাপ অনুসরণ করুন:

  1. অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্টে, অ্যাপ লিঙ্ক টেস্ট করুন বিকল্পে ক্লিক করুন।
  2. আপনি যে URL পরীক্ষা করতে চান সেটি URL ফিল্ডে লিখুন; যেমন, http://recipe-app.com/recipe/grilled-potato-salad।
  3. ছবি ৩. অ্যাপ লিঙ্ক টেস্ট করুন ডায়ালগ যেখানে টেস্ট করা হচ্ছে এমন URL এবং সফল হওয়ার মেসেজ দেখানো হচ্ছে।

  4. টেস্ট রান করুন বিকল্পে ক্লিক করুন।

URL ম্যাপিং সঠিকভাবে সেট-আপ করা না থাকলে বা না থাকলে, অ্যাপ লিঙ্ক টেস্ট করুন ডায়ালগে URL-এর নিচে একটি সমস্যার মেসেজ দেখানো হয়। অন্যথায়, Android Studio অস্পষ্টতা দূর করার ডায়ালগ ("অ্যাপ বেছে নেওয়ার টুল") না দেখিয়েই নির্দিষ্ট অ্যাক্টিভিটিতে ডিভাইস বা এমুলেটরে আপনার অ্যাপ লঞ্চ করে এবং অ্যাপ লিঙ্ক টেস্টিং ডায়ালগে সাফল্যের মেসেজ দেখায়, যেমনটি ছবি ৩-এ দেখানো হয়েছে।

Android Studio অ্যাপটি লঞ্চ করতে না পারলে, Android Studio-এর রান উইন্ডোতে একটি সমস্যার মেসেজ দেখানো হয়।

অ্যাপ লিঙ্ক অ্যাসিস্ট্যান্টের মাধ্যমে Android অ্যাপ লিঙ্ক পরীক্ষা করতে, আপনার কাছে একটি কানেক্ট করা ডিভাইস বা Android 6.0 (API লেভেল 23) বা তার পরবর্তী ভার্সনে চলা একটি ভার্চুয়াল ডিভাইস থাকতে হবে। আরও তথ্যের জন্য, কীভাবে ডিভাইস কানেক্ট করবেন বা AVD তৈরি করবেন সেই সম্পর্কে পড়ুন।