Android WebView: käytä välityspalvelimen ohitusta ennen navigointia
Käytä AndroidX WebKitin ominaisuustarkistusta ja valmistumiskutsua sekä huomioi ohitus, jonka WebView-näkymät jakavat samassa prosessissa.
WebView-näkymän välityspalvelimen ohituksesta riippuvan navigoinnin tulisi alkaa sen jälkeen, kun ohituksen valmistumiskuuntelija on suoritettu. Sen asettaminen ja sivun lataaminen heti jättää toiminnon kilpailemaan asynkronisen päivityksen kanssa.
- Tarkista
WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Tuki riippuu WebView-toteutuksesta ja AndroidX WebKit -kirjastosta sekä Androidin API-tasosta. Määrittele, mitä tapahtuu, kun sitä ei ole; hiljainen suora yhteys voi tehdä ominaisuudesta hyödyttömän. - Rakenna haluttu
ProxyConfigsen dokumentoitujen välityspalvelinsääntöjen, päätepisteen syntaksin ja ohituskäyttäytymisen mukaisesti. Sallittua julkisten sivustojen navigointia varten valitse ehdokas ilmaisten välityspalvelimien luettelosta, jonka protokolla vastaa sääntöä, jota kyseinen WebView-toteutus tukee. PAC-URL, SOCKS-URI ja pelkkä isäntänimi ovat eri syötteitä. - Kutsu
ProxyController.setProxyOverride()kyseisellä kokoonpanolla, suorittajalla ja valmistumiskuuntelijalla. Aloita riippuva navigointi valmistumispolusta. - Kun väliaikainen ohitus päättyy, tyhjennä se
clearProxyOverride()-kutsulla ja käsittele myös sen asynkroninen valmistuminen.
Anna tälle elinkaarelle yksi omistaja. Asetus koskee kaikkia sovellusprosessin WebView-näkymiä; toistuva muuttaminen ei voi antaa kahdelle samanaikaiselle näkymälle itsenäisiä poistumisteitä. Muilla prosesseilla ja HTTP-kirjastoilla on omat reittinsä.
Tämä tuettu rajapinta välttää riippuvuuden yksityisistä välityspalvelimen muutoskuuntelijoista, jotka vaihtelevat Android-julkaisujen välillä. Se valitsee reitityksen; välityspalvelimen tunnistetiedot ja varmenteiden luottamus käyttävät edelleen omia tuettuja mekanismejaan. Todennuksen tai TLS:n epäonnistuminen valinnan jälkeen on diagnosoitava siinä vaiheessa.