2017-11-15 18 views
0

ニュースレターのような基本的な形式のウェブページがあります。アンドロイドウェブビューでHTTP-EQUIV = "REFRESH"が機能していません

ユーザーは情報を送信し、フォーム提出ページへのリンクを含む成功ページを取得します。リンクをクリックしないと、5秒後にページが自動的にリダイレクトされます。

<meta http-equiv="refresh" content="5;url=www.site.com" /> 

これまでのところとても良い!デスクトップブラウザとモバイルブラウザの両方で期待どおりに動作します。

次に、サイトを読み込むためのWebビューでAndroid App(最小API SDK 21)を作成しました。

問題が

が、私は何かが欠けアム...オートリフレッシュは、Webビュー内部の作業をされていないということでしょうか?私はJavaScriptのハックを避けようとしています...

お時間をありがとう!


EDIT

私は新しいフォームの送信ページのリンクをクリックしたとき、それは代わりにウェブビューでそれをレンダリングのデフォルトブラウザを開くことに注意してください!

答えて

0

問題を検索した後、URLの読み込み時にURLをリセットして解決策を見つけました。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ... 

    mWebView = findViewById(R.id.webview); 
    mWebView.setWebViewClient(new WebViewClient(){ 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      mWebView.loadUrl(url); 
      return true; 
     } 
    }); 
    mWebView.loadUrl(url); 
} 

これは機能していますが、改善できると思います。

最初の問題は、私がWebViewClientを設定していないことでした。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ... 

    mWebView = findViewById(R.id.webview); 
    mWebView.loadUrl(url); 
} 

はこのように、私はちょうどWebViewClientを追加する必要があり、それが

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ... 

    mWebView = findViewById(R.id.webview); 
    mWebView.setWebViewClient(new WebViewClient()); 
    mWebView.loadUrl(url); 
} 

注意をうまくいくと思うし、私たちにはJavaScriptを仕事をしたい場合は、我々はそれを

mWebView.getSettings().setJavaScriptEnabled(true); 
を有効にする必要があります
関連する問題