Sono di fronte a uno strano problema.Android WebView che ignora target = "_ blank" quando si aggiunge WebViewClient
Nella mia applicazione, ho bisogno di caricare un file html statico basato sul pulsante cliccato in una WebView dalla cartella delle risorse.
Ora tra 5 file html, un file html contiene 15 collegamenti statici. Questi collegamenti devono reindirizzare l'utente all'url indicato in un browser mobile. Ho usato target="_blank"
per quello scopo come segue nel mio file html.
<div class="lid"><a href="https://www.irctc.co.in/" target="_blank">Railway Reservation </a></div>
Ora, questo funziona bene in un'applicazione di esempio con una semplice WebView
senza WebViewClient
aggiunto ad esso.
Ma ho bisogno di un WebViewClient
per le altre funzionalità. Quindi in quel momento target="_blank"
è completamente ignorato. E l'url viene aperto in una WebView stessa.
ho trovato una soluzione, che posso usare shouldOverrideUrlLoading
come segue:
myWebView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
if(url.equalsIgnoreCase("https://www.irctc.co.in/"))
{
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
else
return super.shouldOverrideUrlLoading(view, url);
}
});
Quindi questo sta aprendo quel particolare URL in un browser di default.
Quindi, in pratica le mie domande sono:
Perché target="_blank"
ignorato mentre usiamo WebViewClient
? E c'è qualche altra soluzione per questo problema? Perché ho 15 collegamenti, che avrei bisogno di confrontare. Non riesco a caricare tutti gli URL in un nuovo browser, poiché ci sono alcuni collegamenti, che devono essere aperti anche in una stessa WebView.
Come sostituire Collegamenti con schema personalizzato? Non ho una chiara idea di ciò. –
Es. con javascript puoi inserire un piccolo JavaScript nella tua webview per riscrivere i link. Basta scorrere tutti i link e inserire il tuo schema. – rekire
@MysticMagic controlla la mia modifica. – rekire