دسترسی به سرور توسعه محلی از WebView

هنگام توسعه محتوای وب برای «وب‌نما»، ارائه محتوا از یک سرور وب محلی در ماشین توسعه نرم‌افزار می‌تواند مفید باشد. اگر از WebView در دستگاه آزمایشی یا شبیه‌ساز به این سرور محلی دسترسی پیدا کنید، می‌توانید به‌سرعت تغییراتتان را بدون استقرار در سرور راه دور ببینید. این صفحه چند روش برای دسترسی به سرور وب درحال اجرا در دستگاه میزبان ازطریق «وب‌نما» را توضیح می‌دهد.

راه‌اندازی بازارسال درگاه معکوس با ADB

می‌توانید از پل اشکال‌زدایی Android‏ (adb)، ابزار خط فرمان برای برقراری ارتباط با دستگاهتان، برای راه‌اندازی بازارسال درگاه معکوس استفاده کنید. این ویژگی به دستگاه یا شبیه‌ساز شما اجازه می‌دهد به سرور وبی که در localhost در ماشین توسعه نرم‌افزار شما اجرا می‌شود دسترسی پیدا کند.

adb دارای فرمان reverse است که می‌تواند درخواست‌ها را در درگاه خاصی در دستگاه به درگاه دیگری در ماشین میزبان بازارسال کند.

برای استفاده از این ویژگی، فرمان زیر را در پایانه خود اجرا کنید:

adb reverse tcp:DEVICE_PORT tcp:HOST_PORT

موارد زیر را جایگزین کنید:

  • ‫DEVICE_PORT: درگاهی در دستگاه که WebView برنامه‌تان به آن متصل می‌شود. برای مثال، ۸۰۸۰.
  • ‫HOST_PORT: درگاه موجود در ماشین توسعه نرم‌افزار شما که سرور وب شما در آن اجرا می‌شود. برای مثال، ۸۰۸۰ یا ۳۰۰۰.

مثال:

اگر سرور توسعه محلی شما در localhost:8080 در ماشین توسعه نرم‌افزار شما اجرا می‌شود، می‌توانید با اجرای فرمان زیر، درخواست‌ها را از دستگاهتان به آن بازارسال کنید:

adb reverse tcp:8080 tcp:8080

پس‌از اجرای این فرمان، می‌توانید WebView برنامه‌تان را به http://localhost:8080 در دستگاه یا شبیه‌ساز هدایت کنید. سپس WebView می‌تواند به سرور وب درحال اجرا در localhost:8080 در ماشین توسعه نرم‌افزار شما متصل شود. این روش هم با دستگاه‌های فیزیکی متصل‌شده با USB و هم با «شبیه‌ساز Android» کار می‌کند.

استفاده از بازارسال درگاه Chrome DevTools

Chrome DevTools ویژگی بازارسال درگاه خودش را دارد که می‌توانید از آن برای بازارسال درخواست‌ها از دستگاهتان به ماشین توسعه نرم‌افزار استفاده کنید.

  1. دستگاهتان را برای اشکال‌زدایی همان‌طور که در اشکال‌زدایی بااستفاده از Chrome DevTools شرح داده شده است راه‌اندازی کنید.
  2. در صفحه chrome://inspect، بازارسال درگاه... را انتخاب کنید.
  3. در فیلد درگاه، شماره درگاه دستگاه Android را که می‌خواهید برای دسترسی به ماشین توسعه نرم‌افزارتان استفاده کنید وارد کنید.
  4. در فیلد نشانی IP و درگاه، نشانی سرور وب و شماره درگاه ماشین توسعه نرم‌افزارتان را وارد کنید.
  5. چارگوش انتخاب فعال کردن بازارسال درگاه را انتخاب کنید.
  6. تمام را انتخاب کنید.

برای مثال، اگر 3000 را در فیلد درگاه و localhost:8000 را در فیلد نشانی IP و درگاه وارد کنید، وقتی WebView را به http://localhost:3000 هدایت کنید، می‌تواند به سرور وب ماشین توسعه نرم‌افزار شما که درحال گوش دادن به localhost:8000 است دسترسی پیدا کند.

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

اتصال بااستفاده از نشانی IP عبوری «شبیه‌ساز Android»

«شبیه‌ساز Android» نشانی IP انتقالی ویژه 10.0.2.2 را برای اتصال به ماشین توسعه نرم‌افزار از برنامه‌تان ارائه می‌دهد. این روش برای اشکال‌زدایی WebView توصیه نمی‌شود زیرا WebView شما این نشانی IP را به‌عنوان زمینه ایمن درنظر نمی‌گیرد. درنتیجه، بسیاری از ویژگی‌های پلاتفرم وب (مانند Service Workers، «موقعیت جغرافیایی»، و دسترسی به دوربین و میکروفون) برای برنامه وب شما دردسترس نخواهد بود. روش‌های بازارسال درگاه adb reverse و Chrome DevTools که قبلاً شرح داده شد این مشکل را ندارند زیرا به شما امکان می‌دهند WebView خود را به نام میزبان مطمئن localhost هدایت کنید.