ناوبری‌ای که به بازنویسی پروکسی WebView وابسته است باید پس از اجرای شنوندهٔ تکمیل بازنویسی آغاز شود. تنظیم آن و بارگذاری فوری یک صفحه، عملیات را با به‌روزرسانی ناهمگام به رقابت می‌کشاند.

  1. WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE) را بررسی کنید. پشتیبانی به پیاده‌سازی WebView و کتابخانهٔ AndroidX WebKit و همچنین سطح API اندروید بستگی دارد. تعیین کنید وقتی موجود نیست چه رخ می‌دهد؛ رفتنِ بی‌صدا و مستقیم می‌تواند ویژگی را بی‌اثر کند.
  2. ProxyConfig موردنظر را با قواعد مستند پروکسی، نحو نقطهٔ پایانی و رفتار عبور آن بسازید. برای ناوبری مجاز به سایت‌های عمومی، نامزدی از فهرست پروکسی‌های رایگان برگزینید که پروتکلش با قاعده‌ای که آن پیاده‌سازی WebView پشتیبانی می‌کند همخوان باشد. نشانی PAC، شناسهٔ SOCKS و میزبان خالی ورودی‌های متفاوتی هستند.
  3. ProxyController.setProxyOverride() را با آن پیکربندی، یک اجراکننده و یک شنوندهٔ تکمیل فراخوانی کنید. ناوبری وابسته را از مسیر تکمیل آغاز کنید.
  4. وقتی بازنویسی موقت پایان یافت، آن را با clearProxyOverride() پاک کنید و تکمیل ناهمگام آن را نیز مدیریت کنید.

به این چرخهٔ عمر یک مالک بدهید. این تنظیم برای WebViewها در سراسر فرآیند برنامه اعمال می‌شود؛ تغییر مکرر آن نمی‌تواند به دو نما در یک زمان خروجی‌های مستقل بدهد. فرآیندها و کتابخانه‌های HTTP دیگر مسیرهای خود را دارند.

این رابط پشتیبانی‌شده از وابستگی به شنونده‌های خصوصی تغییر پروکسی که میان نسخه‌های اندروید فرق می‌کنند پرهیز می‌کند. این رابط مسیریابی را انتخاب می‌کند؛ اعتبارنامه‌های پروکسی و اعتماد به گواهی‌ها همچنان از سازوکارهای پشتیبانی‌شدهٔ خود استفاده می‌کنند. شکست احراز هویت یا TLS پس از انتخاب باید در همان مرحله تشخیص داده شود.

مقالات مرتبط