如何在webview中保存表单的信息

时间:2017-09-19 02:18:29

标签: android webview

我在中间有一个webview,在buttom有4个radiobutton。  每个单选按钮都匹配一个网址。  单击第二个radiobutton会显示一个表单。  当我点击第二个radionbutton并写了一些表单信息时,这次我点击了其他radiobutton。  几秒钟后,我点击第二个radiobutton和网址重新加载。但我想保存上次  表格信息。  怎么做? 我的代码在这里

private void checkone(String url){

if (!Netutils.isNetworkAvalible(MyApplication.mcontext)) {
    fl.removeAllViews();
    webView.loadUrl(url);
    webView.setVisibility(View.GONE);
    webView.removeAllViews();
    fl.setVisibility(View.VISIBLE);
    fl.addView(mErrorView);

} else {
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            fl.setVisibility(View.GONE);
            webView.setVisibility(View.VISIBLE);
            fl.removeAllViews();
        }
    },1000);






        Map extraHeaders = new HashMap();
        extraHeaders.put("Referer", "www.emiaoqian.com");
        webView.loadUrl(url, extraHeaders);


        settings = webView.getSettings();
        settings.setBuiltInZoomControls(true);
        settings.setUseWideViewPort(true);

        settings.setJavaScriptEnabled(true);
        settings.setSaveFormData(true);
        settings.setCacheMode(WebSettings.LOAD_DEFAULT);
        settings.setAppCachePath(MyApplication.mcontext.getCacheDir().getPath());

        webView.setWebChromeClient(new ChomeClient(this) {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {


                currentProgress = pg1.getProgress();
                if (newProgress >= 100 && !isAnimStart) {

                    isAnimStart = true;
                    pg1.setProgress(newProgress);

                    startDismissAnimation(pg1.getProgress());
                } else {

                    startProgressAnimation(newProgress);
                }

            }

            @Override
            public void onReceivedTitle(WebView view, String title) {
                super.onReceivedTitle(view, title);

                if (title.contains("404")) {
                    showErrorPage();
                }
            }
        });


        settings.setAllowFileAccess(true);
        settings.setAllowContentAccess(true);

        settings.setDomStorageEnabled(true);


        String ua = webView.getSettings().getUserAgentString();
        webView.getSettings().setUserAgentString(ua.replace("Android", "emiaoqian"));




        webView.setWebViewClient(new WebViewClient() {

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                pg1.setVisibility(View.VISIBLE);
                pg1.setAlpha(1.0f);



            }

            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                handler.proceed();
            }



            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {



                if (url.startsWith("weixin://wap/pay?")) {
                    Intent intent = new Intent();
                    intent.setAction(Intent.ACTION_VIEW);
                    intent.setData(Uri.parse(url));
                    //startActivityForResult(intent,233);
                    startActivity(intent);
                    return true;
                }
                return super.shouldOverrideUrlLoading(view, url);

            }



            @Override
            public void onPageFinished(WebView view, String url) {
                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
                    CookieSyncManager.getInstance().sync();
                } else {
                    CookieManager.getInstance().flush();
                }


                if (!(url.equals(Constants.LOGIN)) && !(url.equals(Constants.LOGINOUT))) {
                    if (homeTb != null && supportActionBar != null) {
                        supportActionBar.setDisplayHomeAsUpEnabled(false);
                        supportActionBar.setDisplayShowHomeEnabled(false);
                        homeTb.setTitle("");
                    }
                    radiogroup.setVisibility(View.VISIBLE);
                    nouserl.setVisibility(View.VISIBLE);

                } else if (url.equals(Constants.LOGIN) || url.equals(Constants.LOGINOUT)) {
                    inittoolbar2();
                    radiogroup.setVisibility(View.GONE);
                    nouserl.setVisibility(View.GONE);

                }


                if (url.startsWith("https://wx.tenpay.com")) {
                    String newurl = url.substring(url.length() - 12, url.length());
                    LogUtil.e("--", newurl);



                }



            }

            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                showErrorPage();
            }

            @Override
            public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
                showErrorPage();
            }


        });

        fixDirPath();
        // webParentView = (LinearLayout) webView.getParent(); 
    }

}

0 个答案:

没有答案