2016-04-04 11 views
0

ウェブビューで問題があります。
ワードプレスのブログから文字列をロードしたい、魔女に<a>などのhtmlタグがあり、イメージタグがあります。
だから私の問題は、次のとおりです。ウェブビューの問題

  1. 私は地元の文字列をロードしたいと私はリンクをユーザーがクリックを処理したいので、私は、Webビューには、このようなデータをロードし、上記に言及したよう:

    私が試し
    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", ""); 
    

    と別の方法は次の通りであった:

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

    webview.loadData(テキスト、 "テキスト/ HTML"、 "UTF-8");

    と私のクライアントです:

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

    [OK]を、今私は、アプリを実行し、<a>にIをクリックしたときに、私は見たことがないとき「USER_CLICKED」が、WebViewの内容変更と、それは、Webビューが空であると思われます私は雪のように白いです。
    予告1:私はこれを試してみてください。

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

    やアプリ、私がロードされたウェブビュー内のリンクをクリックすると、すべてのものはOKです、と私は、このログを参照して実行します。「USER_CLICKEDを」と関連URL 通知2:はい私は別のURLをたくさん試してみましたが、文字列からロードすると、クリックの処理が変化します。
    注意3:アンドロイド5.1と4.1のテストでは、4.1が認識され、「ユーザー」が表示されますが、5.1ではホワイトページストーリーが発生します(編集:アンドロイド6にも「USER ...」は表示されません)

    イメージタグがロードされない

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

  2. 私の数2の問題は、私がこれを呼び出すときに、あります!私は画像を読み込むことを無視しているだけで、理由はわかりません。
    通知3:ウェブビューの内側からテキストをコピーすると、テキストに四角形があります。

答えて

0

URLはURLです。最初の項目はHTMLであり、URLではありません。 URLをロードする場合は、有効なURL(HTMLではありません)を渡す必要があります。ロードしているHTML文字列から、そのURLを魔法のように解析する必要はありません。実際、最初の項目は有効なHTMLでさえありません.HTMLの一部で、潜在的にスニペットですが、Webビューで必要と思われるHTMLタグで囲まれていません。

+0

コメントありがとう、ああ、私は前に別の方法の束を試した、実際に私は質問にテスト別の方法を追加します。 – 123

1

OK、私は上記のように、私はWordPressの残りのAPI(json)から文字列を取るので、長い時間の後に、私は問題を見つけるので、私の言葉では、文字列はOKになるはずですが、うち、いくつかの余分な '\' 文字列ではあるが、文字列は次のようである:

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

、それは私だけで使用され、単純なよう: S = s.replaceAll( "\\"、 "") ; ですので、この記事をご覧いただきありがとうございます。

関連する問題