Android WebView: piemēro starpniekservera pārrakstīšanu pirms navigācijas
Izmantojiet AndroidX WebKit funkcijas pārbaudi un pabeigšanas atzvanīšanu, un ņemiet vērā pārrakstīšanu, ko WebView koplieto vienā procesā.
Navigācijai, kas atkarīga no WebView starpniekservera pārrakstīšanas, jāsākas pēc tam, kad ir izpildīts pārrakstīšanas pabeigšanas klausītājs. Tā iestatīšana un tūlītēja lapas ielāde atstāj darbību sacensībā ar asinhronu atjauninājumu.
- Pārbaudiet
WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Atbalsts ir atkarīgs no WebView ieviešanas un AndroidX WebKit bibliotēkas, kā arī no Android API līmeņa. Definējiet, kas notiek, ja tā nav; klusa tieša savienošana var padarīt funkciju bezjēdzīgu. - Izveidojiet vajadzīgo
ProxyConfigar tā dokumentētajiem starpniekservera noteikumiem, galapunkta sintaksi un apiešanas uzvedību. Atļautai publisku vietņu navigācijai izvēlieties kandidātu no bezmaksas starpniekserveru saraksta, kura protokols atbilst noteikumam, ko atbalsta šī WebView ieviešana. PAC URL, SOCKS URI un kails resursdators ir dažādas ievades. - Izsauciet
ProxyController.setProxyOverride()ar šo konfigurāciju, izpildītāju un pabeigšanas klausītāju. Sāciet atkarīgo navigāciju no pabeigšanas ceļa. - Kad pagaidu pārrakstīšana beidzas, notīriet to ar
clearProxyOverride()un apstrādājiet arī tās asinhrono pabeigšanu.
Piešķiriet šim dzīves ciklam vienu īpašnieku. Iestatījums attiecas uz visiem lietotnes procesa WebView; atkārtota maiņa nevar dot diviem vienlaicīgiem skatiem neatkarīgas izejas. Citiem procesiem un HTTP bibliotēkām ir savi maršruti.
Šī atbalstītā saskarne izvairās no atkarības no privātiem starpniekservera maiņas klausītājiem, kas atšķiras starp Android laidieniem. Tā izvēlas maršrutēšanu; starpniekservera akreditācijas dati un sertifikātu uzticēšanās joprojām izmanto savus atbalstītos mehānismus. Autentifikācijas vai TLS kļūme pēc izvēles ir jādiagnosticē šajā posmā.