Android中的WebView的form表單提交(post)

1.佈局

<WebView
    android:id="@+id/webview"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</WebView>

2.代碼

private void initWebView() {
        WebView webview = findViewById(R.id.webview);
        //1. Url的地址
        String mUrl = "http://www.baidu.com/";
        //2. 要提交的數據
        String mData = "name=李圖&age=18&sex=n&page=1";
        WebSettings webSettings = webview.getSettings();
        //3. 設置緩存
        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        //4. 適應分辨率
        webSettings.setUseWideViewPort(true);
        //5. 設置能夠解析Javascript
        webSettings.setJavaScriptEnabled(true);
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setDomStorageEnabled(true);
        webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
        webview.setHapticFeedbackEnabled(false);
        //6. java回調js代碼,不要忘了@JavascriptInterface這個註解,不然點擊事件不起作用
        webview.addJavascriptInterface(new JsInterface(this), "android");
        webview.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                Uri uri = Uri.parse(url);
                if (("app/appGetCashCallback.html?source=m").equals(uri.toString())) {
                    finish();
                    startActivityNoResult(TakeMoneySuccessActivity.class, null);
                }
                return super.shouldOverrideUrlLoading(view, url);
            }
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                //加載完畢,關閉加載的dialog
            }
            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                //接受信任所有網站的證書
                handler.proceed();
            }
        });
        //7. 表單提交,postUrl
        webview.postUrl(mUrl,mData.getBytes());
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章