یک وبسایت دارید و میخواهید بهصورت اپلیکیشن روی گوشی مردم باشد. اگر جستوجو کنید چطور این کار را انجام دهید، بارها و بارها به سه اصطلاح برمیخورید: PWA، TWA و WebView. شبیه هم به نظر میرسند، همه صفحات وب را نشان میدهند، و اغلب بد توضیح داده میشوند.
در واقع کاملاً با هم فرق دارند، و انتخاب درست جلوی کلی دوبارهکاری را میگیرد. در اینجا میگوییم هر کدام چیست، چه کاری از آن برمیآید و چه کاری نه، و کی منطقی است.
گزینه 1: یک اپلیکیشن وب پیشرو (PWA)
PWA وبسایتی است که بیشتر شبیه یک اپلیکیشن رفتار میکند. یک web app manifest دارد (یک فایل کوچک JSON با نام، آیکون و رنگها) و معمولاً یک service worker، اسکریپتی که میتواند فایلها را ذخیره کند تا سایت بدون اتصال هم بارگذاری شود. وقتی کسی در مرورگری که پشتیبانی میکند از یک PWA بازدید میکند، میتواند آن را روی صفحه اصلی نصب کند. سپس در پنجره خودش و بدون نوار آدرس باز میشود.
مزایا: اپلیکیشن جداگانهای برای ساختن وجود ندارد. وبسایت خود را بهروز میکنید و همه کاربران فوراً نسخه جدید را دارند. با یک service worker میتوانید آن را آفلاین هم کارآمد کنید.
محدودیتها: مردم باید اول سایت شما را پیدا کنند و بعد روی نصب بزنند، که بسیاری هرگز این کار را نمیکنند. یک PWA ساده فایلی نیست که بتوانید در Google Play بارگذاری کنید، و APK هم نیست که به کسی بدهید. دسترسی به امکانات گوشی به چیزی بستگی دارد که مرورگر از طریق APIهای وب در اختیار میگذارد.
مناسب برای: سایتهایی که مردم از قبل زیاد به آنها سر میزنند، جایی که نصب یک امتیاز اضافه است نه هدف اصلی.
گزینه 2: یک Trusted Web Activity (TWA)
Trusted Web Activity یک اپلیکیشن کوچک Android است که PWA شما را با مرورگر کاربر، مثل Chrome، بهصورت تمامصفحه باز میکند. بر پایه پروتکل Custom Tabs ساخته شده، پس صفحه را خود مرورگر نمایش میدهد، نه اپلیکیشن.
دو شرط وجود دارد. اول، باید ثابت شود سایت و اپلیکیشن شما به یک مالک تعلق دارند. این کار با Digital Asset Links انجام میشود: فایلی در /.well-known/assetlinks.json روی دامنه خود قرار میدهید که نام بسته اپلیکیشن و اثر انگشت گواهی امضای آن را فهرست میکند. دوم، مستندات Google میگوید سایت شما باید معیارهای افزودن به صفحه اصلی را داشته باشد، که در عمل یعنی یک PWA درست با manifest. ابزار Google برای ساختن TWA، Bubblewrap است؛ یک ابزار خط فرمان برای Node.js.
اگر تأیید شکست بخورد، یا مرورگر از TWA پشتیبانی نکند، به گفته Google بهجای تمامصفحه به یک Custom Tab با نوار ابزار ساده مرورگر برمیگردد. این رایجترین غافلگیری است که مردم با آن روبهرو میشوند.
مزایا: یک اپلیکیشن واقعی Android میگیرید که میتواند در Google Play قرار بگیرد، و محتوا همان PWA زنده شماست، پس بهروزرسانیهای وب فوراً دیده میشوند.
محدودیتها: به یک PWA سالم و کنترل دامنه برای میزبانی فایل asset links نیاز دارید. اثر انگشت درون آن فایل باید با کلیدی که اپلیکیشن نصبشده توسط کاربران را امضا میکند یکی باشد، و با Play App Signing نسخه Google Play با کلید امضای اپلیکیشن Google امضا میشود، پس Google پیشنهاد میکند اثر انگشت هر دو، یعنی آن کلید و کلید آپلود خود را فهرست کنید. امکانات گوشی همچنان فقط همان چیزهایی است که مرورگر از طریق APIهای وب ارائه میدهد. و اپلیکیشن به نصب بودن یک مرورگر پشتیبان وابسته است.
مناسب برای: تیمهایی که از قبل یک PWA محکم روی دامنه خودشان دارند و میخواهند با کمترین کد اضافه در Play Store باشد.
گزینه 3: یک اپلیکیشن WebView
اپلیکیشن WebView یک اپلیکیشن بومی Android است که محتوای وب را با کامپوننت WebView اندروید درون پنجره خودش نشان میدهد. WebView یک موتور مرورگر بدون خود مرورگر است: بدون نوار آدرس، بدون زبانه، فقط صفحه شما. مستندات Google آن را گزینه مناسب برای نمایش محتوای وب خودتان توصیف میکند، جایی که در رابط کاربری انعطاف میخواهید.
تفاوت بزرگ با TWA کنترل است. اپلیکیشن تصمیم میگیرد با دکمه بازگشت چه اتفاقی بیفتد، صفحه آغازین چه شکلی باشد، منوهای بومی وجود داشته باشند یا نه، وقتی شبکه قطع است چه نمایش داده شود، و کدام لینکها درون اپلیکیشن باز شوند. Android همچنین به اپلیکیشن WebView اجازه میدهد JavaScript را با addJavascriptInterface به کد بومی وصل کند، تا صفحه شما بتواند امکانات واقعی گوشی را که در وب در دسترس نیستند فراخوانی کند. مستندات Google یک هشدار مهم اضافه میکند: این پل را فقط در اختیار HTML و JavaScript که خودتان نوشتهاید قرار دهید.
مزایا: با هر وبسایت یا پوشهای از فایلهای HTML کار میکند، بدون نیاز به PWA، manifest یا فایل asset links. صفحات را میتوان درون اپلیکیشن قرار داد تا آفلاین فوراً باز شوند. امکانات بومی از طریق یک پل در دسترساند.
محدودیتها: اپلیکیشن فضای ذخیرهسازی خودش را دارد، پس ورود کاربر به وبسایت شما در Chrome به اپلیکیشن منتقل نمیشود. اگر یک سایت زنده را بستهبندی کنید، وقتی چیزی بومی باید تغییر کند، بهروز نگه داشتن اپلیکیشن با شماست.
مناسب برای: اپلیکیشنهای HTML، بازیها، ابزارها، سایتهای کسبوکارهای کوچک، اپلیکیشنهای داخلی شرکت و هر چیزی که از امکانات بومی بهره میبرد.
کنار هم
ویژگیهای گوشی
- PWA: هر API وبی که مرورگر پشتیبانی کند.
- TWA: همان، چون مرورگر صفحه را نمایش میدهد.
- اپلیکیشن WebView: APIهای وب بهعلاوه هر چیزی که اپلیکیشن از طریق یک پل JavaScript در اختیار میگذارد.
آفلاین
- PWA و TWA: اگر service worker شما آنچه لازم است را ذخیره کند، آفلاین کار میکند.
- اپلیکیشن WebView: صفحات همراه اپلیکیشن بدون service worker آفلاین کار میکنند؛ اپلیکیشنهای وبسایت میتوانند صفحه آفلاین خودشان را نشان دهند.
Google Play
- PWA: بهتنهایی نه. باید آن را بستهبندی کنید، معمولاً بهصورت TWA.
- TWA و اپلیکیشن WebView: هر دو اپلیکیشنهای عادی Android هستند و میتوانند بهصورت AAB منتشر شوند.
یک قانون Play بهطور یکسان برای TWAها و اپلیکیشنهای WebView اعمال میشود. سیاست اسپم Google Play اجازه نمیدهد اپلیکیشنهایی که هدف اصلیشان نمایش یک وبسایت در webview بدون اجازه مالک آن وبسایت است منتشر شوند. سایت خودتان، یا سایتی که اجازهاش را دارید، را بستهبندی کنید. Play همچنین اپلیکیشنهایی با کاربرد بسیار محدود را نمیپذیرد، پس به مردم دلیلی بدهید که بهجای یک بوکمارک، اپلیکیشن را نصب کنند.
کدام را انتخاب کنید؟
- فقط یک دکمه نصب روی سایت خود میخواهید: PWA.
- یک PWA پخته روی دامنه خودتان دارید و میخواهید با محتوای زنده وب در Play باشد: TWA.
- امکانات بومی، HTML آفلاین، منوها و کنترل کامل میخواهید، یا PWA ندارید: اپلیکیشن WebView.
Free HTML to APK چطور این کار را انجام میدهد
Free HTML to APK اپلیکیشنهای WebView میسازد. میتوانید از آدرس URL وبسایت، فایلهای HTML، یک ZIP یا یک پوشه شروع کنید و یک APK امضاشده بههمراه یک AAB برای Google Play بگیرید. سازنده وبسایت در freehtmltoapk.com رایگان است، حساب کاربری نمیخواهد و واترمارک اضافه نمیکند، و اپلیکیشن Android با نام "HTML to APK: Website to App" همین کار را روی گوشی شما انجام میدهد.
صفحات شما میتوانند از پل JavaScript داخلی FreeApp برای امکانات گوشی مثل لرزش، اعلانها، دوربین، اسکن QR و بارکد، موقعیت مکانی و اشتراک فایلها استفاده کنند. یک فراخوانی به همین سادگی است:
<button onclick="FreeApp.vibrate(30)">Tap</button>
اپلیکیشنهای HTML همراهشده کاملاً آفلاین کار میکنند، و اپلیکیشنهای وبسایت یک صفحه آفلاین دوستانه نشان میدهند و با برگشتن اتصال دوباره وصل میشوند. چون یک اپلیکیشن WebView است، فایل Digital Asset Links برای راهاندازی وجود ندارد. اگر از قبل یک PWA دارید، service worker آن وقتی اپلیکیشن آن را با URL بارگذاری میکند همچنان کار میکند.
درباره PWA به APK یا وبسایت به اپلیکیشن بیشتر بخوانید و مسیری را انتخاب کنید که با پروژه شما جور است.