0

我有一个带有基本表单的网页(如通讯订阅)。

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

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

到目前为止,一切都很好!它可以在桌面和移动浏览器中按预期工作。

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

问题是自动刷新在网络视图中不起作用......

我错过了什么吗?我试图避免 javascript 黑客...

谢谢你的时间!


编辑

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

4

1 回答 1

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);
于 2017-11-16T12:01:01.087 回答