2016-04-04 26 views
0

Web sayfamda bir sorunum var.
Bir WordPress bloğundan bir dize yüklemek istiyorum, cadı, <a> ve resim etiketi gibi html etiketlerine sahip .... Ben Yukarda dediğim gibiWeb sitesi sorunları

  1. , yerel bir dize yüklemek istiyorum ve linklere kullanıcı tıklatın işlemek istiyorum, bu yüzden web görünümü içine bu gibi verileri yüklemek:
    Yani benim sorunlardır

    I güvenilir
    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", ""); 
    

    ve başka bir şekilde oldu:

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

    webview.loadData (yazı, "metin/html", "uTF-8");

    ve müvekkilim: Ben uygulamasını çalıştırın ve ben <a> tıkladığında ben görmek asla 'USER_CLICKED' ama webview içerik değişikliği ve öyle görünüyor ki zaman

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

    Tamam, şimdi web görünümü boş Yani, kar kadar beyaz.
    uyarı 1: Ben bu çalıştığınızda:

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

    ve ben yüklenen web görünümündeki linklere tıkladığınızda uygulamayı çalıştırmak her şey tamam, ve ben bu Log bkz: 'USER_CLICKED' ve ilgili URL. not 2: Evet, çok sayıda farklı URL'yi deneyin, ancak dizeden yükleniyor, tıklama işleminde değişiklik olmaz.
    not 3: Android 5.1'de ve 4.1'de 4.1 test edilmiş test edilmiş ve 'Kullanıcı'yı görüyorum .. ama 5.1'de beyaz sayfa hikayesi oluyor. (Edit: android 6' USER ... 'da göstermiyor)

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

    resim etiketi yüklemez: Bunu çağırdığınızda

  2. numaram 2 sorun olduğunu! Yani görüntüleri yüklemek için sadece görmezden geliyor ve nedenini bilmiyorum.
    note 3: Web görünümünün içinden metin kopyaladığımda metinde bir dikdörtgen var.

cevap

0

URL bir URL'dir. İlk öğe bir URL değil, HTML'dir. URL'yi yüklemek istiyorsanız, geçerli bir URL (HTML değil) iletmeniz ve URL'nin, yüklediğiniz HTML dizisinden sihirli bir şekilde ayrıştırılmasını beklememeniz gerekir. Aslında ilk öğe bile geçerli bir HTML değildir, HTML'nin bir parçasıdır, potansiyel olarak bir pasajdır, ancak bir web görünümünün gerekeceğini düşündüğüm HTML etiketlerinde bile yoktur.

+0

Yorum için teşekkürler, oh, daha önce farklı bir demet denedim, aslında soruya başka bir yol ekledim. – 123

1

Her biri, uzun bir süre sonra, sorunu buluyorum, yukarıda da belirttiğim gibi, WordPress dinlenme API'sından (json) string alıyorum, bu yüzden sözümdeki dize iyi olmalı, ancak dışarıda, orada dizede '\' bazı ekstra ve dize gibidir:

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

, bu ben sadece kullanmak gibi basit: s = s.replaceAll ("\\", "") ; , bu yazıyı gören herkese teşekkürler.