Android加载WebView - 使用post请求加载
2017-04-28 14:24
337 查看
import android.content.Context; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ImageView; import android.widget.TextView; import com.android.volley.RequestQueue; import com.android.volley.toolbox.Volley; import com.google.android.gms.appindexing.Action; import com.google.android.gms.appindexing.AppIndex; import com.google.android.gms.appindexing.Thing; import com.google.android.gms.common.api.GoogleApiClient; import org.apache.http.util.EncodingUtils; import java.util.Iterator; import java.util.Set; import java.util.TreeMap; public class WebBusinessActivity extends BaseActivity implements View.OnClickListener { private String TAG = "WebBusinessActivity"; private Context mContext; private SPUtil spUtil; private RequestQueue requestQueue; private WebView wv; private GoogleApiClient client; private String key_sort_url = ""; private String substring_url = ""; @Override protected void initActivity() { setContentView(R.layout.activity_web_business); mContext = this; spUtil = SPUtil.getInstance(mContext); requestQueue = Volley.newRequestQueue(mContext); initView(); initWebView(); API_Business_Center(); } private void initWebView() { WebSettings settings = wv.getSettings(); settings.setJavaScriptCanOpenWindowsAutomatically(true);//JS互调 settings.setJavaScriptEnabled(true); settings.setDefaultTextEncodingName("utf-8"); settings.setBuiltInZoomControls(true); 4000 settings.setSupportZoom(true); settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true); settings.setDomStorageEnabled(true); // 开启 DOM storage API 功能 settings.setDatabaseEnabled(true); wv.setWebViewClient(webViewClient); } private void API_Business_Center() { // 请求网络 } // 请求到数据后的处理 VolleyRequest volleyRequest = new VolleyRequest() { @Override protected void onMyResponse(String response) { _Return Re = new _Return(response); if (Re.isSuccess(mContext)) { _WebViewMortgage webViewMortgage = new _WebViewMortgage(Re.getData()); initUrl(wv, webViewMortgage.getUrl(), webViewMortgage.getApi()); } } }; private void initUrl(WebView webView, String countUrl, String countApi) { TreeMap<String, String> params = geturl(countApi); // UtilsTools.Log_e(TAG, "要传的map里的数据" + params.toString()); Set<String> keySet = params.keySet(); Iterator<String> iter = keySet.iterator(); while (iter.hasNext()) { String key = iter.next(); key_sort_url = key_sort_url + key + "=" + params.get(key) + "&"; // UtilsTools.Log_e(TAG, "遍历map拿到所有KEY+vaule拼成字符串" + key_sort_url); substring_url = key_sort_url.substring(0, key_sort_url.length() - 1); // UtilsTools.Log_e(TAG, "截取字符串:" + substring_url); } webView.postUrl(countUrl, EncodingUtils.getBytes(substring_url, "BASE64")); } private TreeMap<String, String> geturl(String countApi) { TreeMap<String, String> map = new TreeMap(); map.put("xxx", "xxxxxxxxx"); return map; } private void initView() { TextView tv_title_bar_title = (TextView) findViewById(R.id.tv_title_bar_title); tv_title_bar_title.setVisibility(View.VISIBLE); tv_title_bar_title.setText("标题"); ImageView iv_title_bar_left = (ImageView) findViewById(R.id.iv_title_bar_left); iv_title_bar_left.setVisibility(View.VISIBLE); iv_title_bar_left.setImageResource(R.mipmap.ic_back); iv_title_bar_left.setOnClickListener(this); wv = (WebView) findViewById(R.id.wv_main_mortgage); } WebViewClient webViewClient = new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String request) { view.loadUrl(request); return true; } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ATTENTION: This was auto-generated to implement the App Indexing API. // See https://g.co/AppIndexing/AndroidStudio for more information. client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); } /** * ATTENTION: This was auto-generated to implement the App Indexing API. * See https://g.co/AppIndexing/AndroidStudio for more information. */ public Action getIndexApiAction() { Thing object = new Thing.Builder() .setName("WebViewMortgage Page") // TODO: Define a title for the content shown. // TODO: Make sure this auto-generated URL is correct. .setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]")) .build(); return new Action.Builder(Action.TYPE_VIEW) .setObject(object) .setActionStatus(Action.STATUS_TYPE_COMPLETED) .build(); } @Override public void onStart() { super.onStart(); client.connect(); AppIndex.AppIndexApi.start(client, getIndexApiAction()); } @Override public void onStop() { super.onStop(); AppIndex.AppIndexApi.end(client, getIndexApiAction()); client.disconnect(); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.iv_title_bar_left: finish(); break; } } }
布局 :
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.yiban.caesar.Activity.Main.WebBusinessActivity"> <include layout="@layout/layout_title_bar"/> <WebView android:id="@+id/wv_main_mortgage" android:layout_width="match_parent" android:layout_height="match_parent"></WebView> </LinearLayout>
相关文章推荐
- Android 网络:使用URLConnection提交请求,获取html代码加载WebView
- 【android】WebView使用Post请求和设置浏览器弹框
- android,使用webView加载页面,界面空隙问题
- Android使用WebView加载本地资源
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- cocos2dx Android 使用WebView来加载网页
- Android WebView的使用(禁止超链接调用其他浏览器 设置滚动条 禁止横竖屏切换重新加载网页 )
- Android使用WebView加载本地资源
- Android使用WebView加载文字总结之中文乱码、禁止横向滚动、自动换行
- android使用webview加载网页
- android 学习心得---webview使用得到网页加载时间
- Android使用原生组件WebView加载网页和数据的方法
- Android使用WebView加载图片防止OutOfMemoryError
- android使用webview加载flash文件
- Android中如何判别WebView加载完毕并使用ProgressDialog进行提示
- Android使用WebView加载本地资源
- Android使用WebView加载本地资源
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- Android中使用WebView, WebChromeClient和WebViewClient加载网页