Distriggerszione dei collegamenti in android WebView

In primo luogo, sono piuttosto verde nel mondo della programmazione, quindi perdonami se la mia domanda manca la clearance in qualsiasi parte. Attualmente stavo cercando di creare un'applicazione che richiede che i collegamenti non possano essere eseguiti in WebView o in un altro browser per questo motivo. Sono riuscito a mettere i seguenti due link, In Webview di Android, posso modificare un DOM di una pagina web? e Titanium Appcelerator Quickie: Distriggers i collegamenti in Webview insieme e crea il seguente codice di lavoro:

private class WebClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { view.loadUrl("javascript:document.body.innerHTML = document.body.innerHTML.replace(/<a.*href=/gi,'<a href=\"#\" _url=');"); } } 

Lo snippet sopra è posto prima del metodo onCreate e viene fatto riferimento nel metodo onCreate come questo:

  • Come impostare un promemory in Android?
  • animation di transizione di attività personalizzata in Android
  • Scelta dispositivo dispositivo Android - Il mio dispositivo sembra offline
  • widget android su evento clic
  • Il frammento è trasparente e mostra l'attività sotto
  • Android - è il cassetto di navigazione dal lato destro ansible?
  •   viewer = (WebView) findViewById(R.id.wv_engine); viewer.setWebViewClient(new WebViewClient()); viewer.loadUrl(content); 

    Ora, il codice funziona … ma solo dopo che la pagina web richiesta è stata caricata una seconda volta. La prima volta che eseguo il WebView, example.com ha tutti i suoi collegamenti intatti, cliccabili e eseguibili. Usando il backbutton, uscire dal WebView e inserirlo di nuovo rende tutti i collegamenti disabilitati cambiando

     <a href="http://www.example.com">link</a> 

    a

     <a href="#" _url="http://www.example.com">link</a> 

    Ora, ho una teoria che non sono affatto sicuro (non sono programmatore). Credo che il JavaScript sia eseguito a lento, il che provoca la manipolazione dei collegamenti che non accadono mai. Ecco perché funziona la seconda volta lavorando invece con con la cache. Ho avuto questi pensieri dalla lettura di questa discussione . Tuttavia non ho idea di come correggerlo.

    Così la mia domanda va: Come posso assicurarmi che nessuno dei link del sito web visualizzato possa mai essere utilizzato? C'è un modo per fare la manipolazione prima che il sito venga visualizzato?

    Grazie per il tuo tempo e per il tuo sforzo. Questa è veramente una comunità incredibile;)

    • Krede

  • OAuth nell'applicazione Android
  • mostrando la notifica in API 16 in android
  • Forme multiple all'interno di shapes.xml in android
  • La parte trasparente dell'image in ImageView diventa nera
  • Sospendi / riprendi mediaPlayer sul suono di notifica
  • SDK Manager non avvia Windows 7 a 64 bit?
  • One Solution collect form web for “Distriggerszione dei collegamenti in android WebView”

    Penso che questo sia sbagliato:

     viewer.setWebViewClient(new WebViewClient()); 

    Immagino che tu intendi questo invece:

     viewer.setWebViewClient(new WebClient()); 

    Questo spiega perché gli URL non sono disabilitati al primo carico. Ma non capisco perché sono disabilitati per la seconda volta.

    Inoltre, penso che dovresti rimuovere questo:

     view.loadUrl(url); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.