Android webview应用程序无法加载我的表单

时间:2017-01-26 12:01:03

标签: java android webview

您好我经常搜索但无法找到任何有用的东西。

我正在为我们现有的网站创建一个Android应用程序。网站本身将加载,但用户可以登录的主要表单不会加载。有谁知道这是怎么发生的? 该网站为https://app.one-2-ten.com/v2

P.S。这是我第一次制作Android应用程序,如果它是一个明显的解决方案,那就很抱歉。

ProgressBar progressBar;


WebView webView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    progressBar = (ProgressBar) findViewById(R.id.progressBar);

    webView = (WebView) findViewById(R.id.webView);

    if (savedInstanceState != null) {
        webView.restoreState(savedInstanceState);
    }
    else{
        webView.getSettings() .setJavaScriptEnabled(true);
        webView.getSettings() .setSupportZoom(false);
        webView.getSettings() .setBuiltInZoomControls(false);
        webView.getSettings() .setLoadWithOverviewMode(true);
        webView.getSettings() .setUseWideViewPort(true);
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webView.setWebViewClient(new ourViewClient());
        webView.Settings.AllowContentAccess = true;

        webView.setWebChromeClient(new WebChromeClient(){
            public void onProgressChanged (WebView view, int progress){
                progressBar.setProgress(progress);
                if(progress < 100 && progressBar.getVisibility() == ProgressBar.GONE){
                    progressBar.setVisibility(ProgressBar.VISIBLE);
                }if(progress == 100){
                    progressBar.setVisibility(ProgressBar.GONE);
                }

                }
            }
        );}

        String data = getIntent() .getDataString();

        if(Intent.ACTION_VIEW.equals(getIntent() .getAction())){
            webView.loadUrl(data);
        }else{
            webView.loadUrl("https://one2ten-system.parseapp.com/v2");
        }

    }

public class ourViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView v, String url) {
        if (url.contains("one2ten-system.parseapp.com/v2")) {
            v.loadUrl(url);
            CookieManager.getInstance().setAcceptCookie(true);
        } else {
            Uri uri = Uri.parse(url);
            startActivity(Intent.createChooser(new Intent(Intent.ACTION_VIEW, uri), "Choose browser"));
        }
        return true;
    }

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

}

    @Override
    public void onBackPressed() {
        if(webView.canGoBack()) {
            webView.goBack();
        } else {
            super.onBackPressed();
        }
    }

    @Override
public void onSaveInstanceState(Bundle outState){
    super.onSaveInstanceState(outState);
    webView.saveState(outState);
}

}

1 个答案:

答案 0 :(得分:0)

我发现了我的问题,我忘了添加以下行:webView.getSettings()。setDomStorageEnabled(true);

这使浏览器能够存储来自表单的用户数据,这是因为您登陆登录页面所需要的。

如果我的答案不完整,请告诉我! 感谢