2017-01-20 3 views
0

HTML文字列をWebビューに設定しています。 html文字列には、ハイパーリンク(クリック可能なリンク)が含まれています。ユーザーがリンクをクリックすると、同じWebViewに読み込まれます。ユーザーが戻ると、goBack()関数は機能しますが、文字列を読み戻しません。また、ユーザーが押したときにhtml文字列を再度ロードしようとしました。しかし、これは動作しません。私のコードを以下に投稿してください。html文字列がロードされたときに、webviewのgoBack()関数が動作しない

mDescriptionWebVIew.getSettings().setJavaScriptEnabled(true); 
mDescriptionWebVIew.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View view, int i, KeyEvent keyEvent) { 
      if ((i == KeyEvent.KEYCODE_BACK) && mDescriptionWebVIew.canGoBack()) { 

       mDescriptionWebVIew.goBack(); 
       if(urlList.size()!=0) { 
        urlList.remove(urlList.size() - 1); 
       } 
       if(urlList.size()==0){ 
        mDescriptionWebVIew.loadDataWithBaseURL("", htmlFinal, "text/html", "UTF-8", ""); 
       } 
       return true; 
      } 
      return false; 
     } 
    }); 
mDescriptionWebVIew.getSettings().setPluginState(WebSettings.PluginState.ON); 
mDescriptionWebVIew.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      urlList.add(url); 
      return false; 
     } 
    }); 

答えて

1

あなたはbaseUrlパラメータ(loadDataWithBaseURLメソッドの最初のパラメータ)を使用していない場合は、多分あなたはちょうどloadData代わりに、必要があります。

mDescriptionWebVIew.loadData(htmlFinal, "text/html", "UTF-8"); 
+0

感謝を!これは機能します。しかし、どのようにWebビューの高さをコンテンツに設定するのですか? webviewからクリックされたリンクは長めで、戻るときに空白が残っています。 –

+0

@SahanaPrabhakar WebViewにコールバックしてサイズをトリガーするJavascriptInterfaceがページに必要なように聞こえます。こちらをご覧ください:https://capdroid.wordpress.com/2014/08/07/resizing-webview-to-match-the-content-size/ –

関連する問題