2016-04-04 6 views
0

Ich habe ein Problem in meiner Web-Ansicht.
Ich möchte eine Zeichenfolge aus einem WordPress-Blog laden, die HTML-Tags wie <a> und Bild-Tag und ... haben.
Also meine Probleme sind:Probleme mit der Web-Ansicht

  1. Wie ich oben erwähnt habe, habe ich eine lokale Zeichenfolge geladen werden soll, und ich möchte Benutzer klicken Sie auf die Links zu handhaben, so lade ich Daten wie diese in die Web-Ansicht:

    WebView webview = (WebView) this.findViewById(R.id.mainWV); 
    webview.setWebViewClient(new MyWebViewClient()); 
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.getSettings().setDomStorageEnabled(true); 
    
    String s="<p>It will<a href=\"http://www.bbc.com/\"> enable</a> Seattle-based Alaska to expand into lucrative hubs such</p>\n<p><img class=\"aligncenter size-full wp-image-1035\" src=\"http://ichef.bbci.co.uk/news/660/cpsprodpb/D09F/production/_89070435_89069565.jpg\" alt=\"\" width=\"300\" height=\"120\" /></p>\n<p>as San Francisco and Los Angeles.</p>\n"; 
    
    webview.loadDataWithBaseURL("", s, "text/html", "utf-8", ""); 
    

    und eine andere Art und Weise habe ich versucht, war:

    String head1 = "<head></head>"; 
        String text = "<html>" + head1 
          + "<body dir=\"rtl\" >" + s 
          + "</body></html>"; 
    

    webview.loadData (Text, "text/html", "UTF-8");

    und mein Klient ist:

    class MyWebViewClient extends WebViewClient { 
        @Override 
        public boolean shouldOverrideUrlLoading(WebView view, String url) { 
         Log.d("USER_CLICKED", url + "USER_CLICKED"); 
         return true; 
        } 
    } 
    

    Ok, jetzt, wenn ich die app laufen, und wenn ich auf <a> klicken Ich sehe nie ‚USER_CLICKED‘, aber der Webansicht Inhalt ändern und es scheint, Web-Ansicht ist leer Ich meine, weiß wie Schnee.
    Hinweis 1: wenn ich versuche, dies:

    webview.loadUrl("https://android-arsenal.com/"); 
    

    und die App laufen, wenn ich in der geladenen Web-Ansicht auf die Links klicken, alles ist in Ordnung, und ich sehe diese Log: ‚USER_CLICKED‘ und die verwandte URL Hinweis 2: Ja, ich versuche eine andere URL, aber das Laden von String, nichts ändert sich in Klick-Handhabung.
    hinweis 3: ich teste in android 5.1 und 4.1 in 4.1 geklickt erkannt und ist see 'User .. aber in der 5.1 die weiße seite geschichte passiert. (Edit: android 6 auch nicht anzeigen' USER ... ')

  2. meine Nummer 2 Problem ist, wenn ich das nennen:

    webview.loadDataWithBaseURL("", s, "text/html", "utf-8", ""); 
    

    der image-Tag wird nicht geladen! Ich meine, es ist einfach zu ignorieren, um die Bilder zu laden, und ich weiß nicht warum.
    Hinweis 3: Wenn ich Text aus der Webansicht kopiere, gibt es ein Rechteck im Text.

Antwort

0

Eine URL ist eine URL. Das erste Element ist HTML, keine URL. Wenn Sie die URL laden möchten, müssen Sie eine gültige URL (nicht HTML) übergeben und erwarten nicht, dass die URL aus der HTML-Zeichenfolge, die Sie laden, auf magische Weise analysiert wird. Tatsächlich ist das erste Element nicht einmal gültiges HTML, es ist ein Teil von HTML, möglicherweise ein Snippet, aber es ist nicht einmal in den HTML-Tags eingeschlossen, die ich für eine Web-Ansicht erwarte.

+0

danke für den Kommentar, oh, ich habe versucht eine Reihe von anderen Weg, in der Tat füge ich einen anderen Weg, den ich in die Frage getestet. – 123

1

OK jeder, nach einer langen Zeit, finde ich das Problem, so wie ich oben erwähnt, nehme ich Zeichenfolge von WordPress Rest API (JSON), so in meinem Wort sollte die Zeichenfolge OK sein, aber wie ich finde out, gibt es einige zusätzliche '\' in der Zeichenfolge, und die Zeichenfolge wie:

<p>It will<a href=\\\"example URL\\\"> enable</a> Seattle.... 

, wie einfach es ist, verwende ich nur: s = s.replaceAll ("\\", "") ; also, danke an alle, die diesen Beitrag sehen.