HTTP-EQUIV =“REFRESH”无法在android web视图上运行

时间:2017-11-15 10:28:44

标签: android html webview http-equiv

我有一个基本表单的网页(如新闻订阅)。

用户发送其信息并获得一个成功页面,其中包含指向表单提交页面的链接。如果他没有点击链接,页面将在5秒后自动重定向。

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

到目前为止一切顺利!它在桌面和移动浏览器中都能正常运行。

然后我创建了一个带有Web视图的Android应用程序(min API SDK 21)来加载该站点。

问题是自动刷新在网页视图中无效...

我错过了什么吗?我试图避免使用javascript hack ...

感谢您的时间!

修改

我注意到当我点击新表单提交页面链接时,它会打开默认浏览器,而不是在Web视图上呈现它!

1 个答案:

答案 0 :(得分: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);