برنامه نویسی

کابوس پیوند عمیق 💀 – انجمن DEV

آیا تا به حال کابوس فناوری را تجربه کرده اید که شما را ناامید و ناامید کند؟ خوب، اجازه دهید در مورد بدترین تجربه خود با لینک عمیق Firebase و نمای وب اینستاگرام به شما بگویم. همه چیز از زمانی شروع شد که من سعی می کردم پیوندهای عمیق را در برنامه خود پیاده کنم و نمی دانستم سواری ترن هوایی در انتظار من است. همانطور که عمیق تر می کردم، متوجه شدم که در پیچ و خم اشتباهات و اشکالاتی که به نظر بی پایان می رسید گیر کرده ام. و درست زمانی که فکر کردم از این بدتر نمی شود، وب ویو اینستاگرام تصمیم گرفت به مهمانی بپیوندد. در این مقاله، من داستان خود را از چگونگی تبدیل این کار به ظاهر ساده به کابوسی که برای هفته‌ها به طول انجامید، به اشتراک می‌گذارم.

در نگاه اول، الزامات مشتری من بسیار ساده به نظر می رسید. آن‌ها می‌خواستند برنامه‌شان یک صفحه خاص با لینک عمیق داشته باشد و وقتی کاربر روی آن لینک عمیق کلیک کرد، برنامه مستقیماً به آن صفحه باز می‌شد. به عنوان یک توسعه دهنده با تجربه، مطمئن بودم که می توانم به راحتی این ویژگی را با استفاده از لینک های عمیق Firebase پیاده سازی کنم.

من با ایجاد URL پیوند عمیق و آزمایش آن در دستگاهم شروع کردم. به نظر می رسید همه چیز همانطور که انتظار می رود کار می کند، درست است

ساده است درست است

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

فکر کردم به firebase یک لینک عمیق می دهم و firebase با باز شدن برنامه کلیک روی لینک ها آماری را به من ارائه می دهد و چه چیزی نه، اما همانطور که می دانید انتظارات همیشه آسیب می زند.

انتظارات صدمه می زند

هیچ راهی وجود ندارد که firebase آن اطلاعات را به ما بدهد زیرا این پیوندها به صورت پویا از باطن من تولید می شوند.

بنابراین من شروع به فکر کردن در مورد راه حل جایگزین کردم، بنابراین به این ایده رسیدم که کاربر ابتدا به صفحه فرود من هدایت می شود و سپس من آنها را به پیوند عمیق خود هدایت می کنم، بنابراین تعداد کلیک پیوندها را دریافت می کنم و صفحه برنامه نیز یک بار باز می شود. باز هم ساده است، اما من پیش‌نمایش لینک‌هایی را که لینک‌های عمیق به من می‌دادند از دست دادم، اما چون از تگ‌های متا و og آگاه بودم، تولید پیش‌نمایش لینک کار آسانی بود، فقط باید html را به صورت پویا از سرورم ارسال کنم و کارم تمام شد.

حالا دوباره روزهای آرام 😌
توضیحات تصویر

اما این روزهای آرام زیاد دوام نیاورد و پیوند عمیق از کار افتاد

دلیل: مشتری من تبلیغات فیس بوک و اینستاگرام را شروع کرد و زمانی که لینک سفارشی من در آن به اشتراک گذاشته شد، به لینک عمیق تغییر مسیر داد اما به برنامه من تغییر مسیر داد.

بنابراین همکار من اندروید (آیا اشاره کردم این مشکل فقط در اندروید بود 😅) برنامه نویس ایده ای برای باز کردن برنامه اندروید با طرح سفارشی پیدا کرد.

نکته کوچک در مورد طرح های سفارشی

  • طرح‌های سفارشی پیوندهایی هستند که می‌توانند به شما کمک کنند برنامه خود را از مرورگر باز کنید، این طرح‌های سفارشی در زمان نصب برنامه در سطح OS ثبت می‌شوند.

در زیر نمونه‌ای از وب‌سایت واتس‌اپ است که تلاش می‌کند برنامه واتس‌اپ را از طریق طرح سفارشی باز کند

طرح سفارشی whatsapp

اما مشکل همچنان باقی می ماند 😔، اگر برنامه نصب نشود و وب ویو از کار بیفتد، وب ویو اینستاگرام نمی تواند از عهده آن بر بیاید، پس حالا چه می شود!!!

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

اما سوال اینجاست که چگونه این کار را انجام دهیم؟

به یاد داشته باشید که بعد از تحقیقاتی که در مورد یک متا تگ پیدا کردم گفتم متا تگ می فرستم تا پیش نمایش پیوند ایجاد کنم.

<meta http-equiv="refresh" content="0; url=intent://${intent_link}/#Intent;scheme=https;action=android.intent.action.VIEW;end;" />
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بنابراین اکنون آنچه اتفاق می‌افتد این است که وقتی شخصی روی پیوند کلیک می‌کند، مرورگر درون برنامه باز می‌شود و سپس یک مرورگر خارجی را باز می‌کند و سپس مرورگر پیوند عمیق اصلی من را باز می‌کند و سپس پیوند عمیق کنترل آنچه باید انجام شود را بر عهده می‌گیرد.

پس از روزها تلاش و جلسات طوفان فکری بی پایان با تیم من، سرانجام راه حلی پیدا کردیم که به طور یکپارچه کار می کرد. با استفاده از ترکیبی از طرح‌های سفارشی و تگ متا رفرش، ما توانستیم محدودیت‌های نمای وب اینستاگرام را دور بزنیم و تجربه کاربری روانی را برای مشتریان خود فراهم کنیم.

جشن_گیف

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

در پایان، در حالی که مسیر پیاده‌سازی پیوندهای عمیق Firebase و نمای وب اینستاگرام ممکن است پر از دست‌انداز بوده باشد، ما با راه‌حلی که فراتر از انتظارات مشتری‌مان بود، پیروز شدیم. و چه کسی می‌داند، شاید دفعه بعد که با چالشی مشابه روبرو شدیم، برای مقابله با آن مجهزتر باشیم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا