2016-11-22 24 views
0

WebViewでWebページを開き、ページが読み込まれた後にボタンをクリックすると自動的に表示されます。私は"javascript:$('#customer-info-edit').click();"または"javascript:document.getElementById('customer-info-edit').click();"両方の仕事の罰金を使用することができますWebViewでJavascriptが動作しない

public class WebViewFragment extends Fragment { 

    ... 

    @Override 
    public void onResume() { 
     super.onResume(); 
     openUrl(); 
    } 

    private void openUrl() { 
     setCookies(); 
     if (urlToOpen != null) { 
      //tell webview to handle redirects (by default browser launches on redirects) 
      webview.setWebViewClient(new WebViewClient() { 
       @Override 
       public void onPageStarted(WebView view, String url, Bitmap favicon) { 
        super.onPageStarted(view, url, favicon); 

        if (getActivity() != null) 
         ((MainActivity) getActivity()).onShowLoading(); 
       } 

       @Override 
       public void onPageFinished(WebView view, String url) { 
        super.onPageFinished(view, url); 

        if (getActivity() != null) { 
         executeJS(); 
         ((MainActivity) getActivity()).onHideLoading(); 
        } 
       } 
      }); 
      if (javascriptToExecute != null) { 
       webview.getSettings().setJavaScriptEnabled(true); 
      } 
      webview.loadUrl(urlToOpen); 
     } 

    } 

    private void executeJS() { 
     System.out.println("executeJS(): " + javascriptToExecute); 
     webview.loadUrl(javascriptToExecute); 
    }  
} 

:これは私の現在のWebViewクラスです。

しかし、問題は1回だけ問題です。初めてWebViewを開くと、ボタンがクリックされます。しかし、私が物理的な戻るボタンを押してWebViewを再び開くと、ボタンはクリックされません。毎回Javascriptが動作しないのはなぜですか?

+0

ブラウザでは、戻るボタンはキャッシュからのリロードをトリガーします。これはページの読み込みをトリガーするのではなく、以前の状態でリロードします。私はこれが同じ問題であるかどうかは言えませんが、Webビューを使用したことはありませんでしたが、このリンクではいくつかのオプションを試すことができます。あなたのページに直接関連するスクリプトを置くだけで... http://stackoverflow.com/questions/15791148/startup-javascript-code-is-not-executed-when-using-the-firefox-back-button – Archer

答えて

0

私は問題の正確さを知りませんでしたが、実際の解決策を見つけました.Javascriptを実行する前に500msの遅延を追加してください。

関連する問題