راه اندازی deep link در فلاتر

سلام

امروز مسئله ای که تقریبا یک هفته درگیرش بودم می خوام شرح بدم

من در حال نوشتن یک APP اندروید و بعدش انشالله IOS روی بستر فلاتر هستم به نام نظرجو

به صورت شبکه اجتماعی سوال و جواب هست اولش با امکانات خیلی ساده که در ادامه قرار بزرگ بشه انشالله

این حجم زیادی از جستجو ها از طریق گوگل قرار وارد سایت نظرجو بشه به خاظر همین نیاز داریم تا در صورتی که از گوگل سرچ شد و اپ مارو نصب داشت بتونه از طریق اون وارد صفحه مورد نظر اپ بشه

در زبان ساده به این کار که از طریق لینک سایت به طور خاص در اینجا بتونیم درخواست به اپ مربوطه بفرستیم و در اپ بنا به لینک صفحه مورد نظر نشون بدیم میشه دیپ لینک به طور ملموسش اپ دیجیکالا وقتی اپش دارید بر روی لینک مربوطه میزنید اگر اپ داشته باز میشه میره داخل صفحه مورد نظر.

خوب تا اینجا خیلی ساده سعی کردم این توضیح بدم

روی فلاتر چطوری این کار باید انجام بدیم

https://github.com/DenisovAV/deep_links_flutter

در بالا repository که قرار دادم میتونید خیلی راحت با کپی کردن کدهای مورد نظر روی پروژه فلاتر این به راحتی اجرا کنید

این نمونه کد روی فلاتر 1.22 روی channel stable تست شده است .

من این روی sdk 19 کار کردم به راحتی جواب داده است .

خوب تا اینجای کار روتین هست و با اصلاح androidmanifest در پوشه app/src/main و اضافه کردن این کد

<intent-filter android:label=&quotNazarjo&quot>
    <action android:name=&quotandroid.intent.action.VIEW&quot />
    <category android:name=&quotandroid.intent.category.DEFAULT&quot />
    <category android:name=&quotandroid.intent.category.BROWSABLE&quot />
    <data
        android:scheme=&quothttps&quot
        android:host=&quotnazarjo.com&quot
        android:pathPrefix=&quot/&quot
        />
    <data
        android:scheme=&quothttps&quot
        android:host=&quotnzrj.ir&quot
        android:pathPrefix=&quot/&quot
        />
</intent-filter>

در activity می توانید درخواست های مربوط به یک دامنه خاص دریافت کنید .

یک نمونه اش توضیح می دم خدمتتون البته فکر کنم واضح باشه.

به طور مثال ما می خوایم وقتی روی این لینک کلیک شد در هر اپ و هر جایی در گوشی اندروید اپ ما باز شود به طور مثال example://nazarjo.app/test

مقادیر زیر به این صورت می شود

1 - android:scheme

example

2 - android:host

nazarjo.app

3 - android:pathPrefix

test

و این می توانید یک لینک باشد که example می تواند http یا https باشد .

خوب تا اینجا کد فعال کردیم و همین طور intent filter روی androidmanifest تنظیم کردیم.

من کتابخانه مورد نظری که قرار دادم توضیح ندادم چون خیلی دقیق قرار داده و مهم ترین چیزی که باید تنظیم بشه mainAcitivty است

https://github.com/DenisovAV/deep_links_flutter/tree/master/android/app/src/main/kotlin/dev/flutter/deep_links_flutter

با تنظیم این مورد می توانید به درستی با دریافت لینک اپ را فعال نمایید.

امیدوارم کاربردی بوده باشه اگر بخواید دقیقتر در مورد MainActivity بدانید. این درواقع API صالی اندروید می باشد درخواست هایی که با سیستم خود اندروید می خواهید مستقیم کار کنید مثلا می خواهید خودتون کتابخانه ای بسازید که درصد باطری دریافت کنید یا فینگر پرینت و .... استفاده کنید بدون پکیج های از قبل آماده شده. این در واقع میاد درخواست اونجا میگیره هندل میکنه و به سمت فلاتر پاس داده میشه

من سعی کردم مواردی که خودم درگیرش بودم اطلاع بدم

اهان میشه