Android WebView: החל את עקיפת ה-proxy לפני ניווט
השתמש בבדיקת התכונה ובקריאה החוזרת של השלמה של AndroidX WebKit, והתחשב בעקיפה המשותפת ל-WebView בתהליך אחד.
ניווט שתלוי בעקיפת proxy של WebView צריך להתחיל לאחר שמאזין ההשלמה של העקיפה רץ. הגדרתו וטעינת עמוד מיד משאירה את הפעולה במירוץ מול עדכון אסינכרוני.
- בדוק את
WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). התמיכה תלויה במימוש ה-WebView ובספריית AndroidX WebKit וכן ברמת ה-API של Android. הגדר מה קורה כשהוא חסר; מעבר ישיר בשקט עלול לנטרל את התכונה. - בנה את
ProxyConfigהרצוי עם כללי ה-proxy המתועדים שלו, תחביר נקודת הקצה והתנהגות העקיפה. לניווט מורשה לאתרים ציבוריים, בחר מועמד מרשימת ה-proxy החינמיים שהפרוטוקול שלו תואם כלל שמימוש ה-WebView הזה תומך בו. כתובת PAC, URI של SOCKS ומארח חשוף הם קלטים שונים. - קרא ל-
ProxyController.setProxyOverride()עם התצורה הזו, מבצע ומאזין השלמה. התחל ניווט תלוי מנתיב ההשלמה. - כשהעקיפה הזמנית מסתיימת, נקה אותה עם
clearProxyOverride()וטפל גם בהשלמה האסינכרונית שלה.
תן למחזור חיים זה בעלים אחד. ההגדרה חלה על כל ה-WebView בכל תהליך האפליקציה; שינוי חוזר ונשנה שלה לא יכול לתת לשתי תצוגות בו-זמניות יציאות בלתי תלויות. לתהליכים אחרים ולספריות HTTP יש מסלולים משלהם.
ממשק נתמך זה נמנע מתלות במאזיני שינוי proxy פרטיים המשתנים בין גרסאות Android. הוא בוחר ניתוב; אישורי proxy ואמון בתעודות עדיין משתמשים במנגנונים הנתמכים שלהם. כשל אימות או TLS לאחר הבחירה צריך להיות מאובחן בשלב זה.