package com.brady.jlulife.Fragments;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.brady.jlulife.R;
import com.brady.jlulife.Utils.ConstValue;
import org.apache.http.util.EncodingUtils;
/**
* Created by brady on 15-12-15.
*/
public class LibraryAccountFragment extends BaseFragment {
private WebView webView;
private Context mContext;
private static LibraryAccountFragment instance;
public static LibraryAccountFragment getInstance(){
if(instance == null){
instance = new LibraryAccountFragment();
}return instance;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_library_search, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mContext = getActivity().getApplicationContext();
webView = (WebView) view.findViewById(R.id.lib_view);
initWebView();
showLendItems();
}
public boolean canGoBack() {
return webView.canGoBack();
}
public void preformBack() {
webView.goBack();
}
private void initWebView(){
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webView.getSettings().setAllowFileAccess(true);
//如果访问的页面中有Javascript,则webview必须设置支持Javascript
webView.getSettings().setJavaScriptEnabled(true);
// webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setDatabaseEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
showDialog();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
hideDialog();
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);// 使用当前WebView处理跳转
return true;//true表示此事件在此处被处理,不需要再广播
}
@Override //转向错误时的处理
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
}
});
}
private void showLendItems(){
Bundle arguments = getArguments();
String uname = "";
String pwd = "";
if(arguments!=null){
uname = arguments.getString("uname");
pwd = arguments.getString("pwd");
}
synCookies(mContext,ConstValue.LIBRARY_ACCOUNT_WEB);
String postData = "backurl=/cmpt/opac/opacLink.jspx?backurl=http%3A%2F%2F202.198.25.5%3A8080%2Fsms%2Fopac%" +
"2Fuser%2FlendStatus.action%3Fxc%3D3&shcoolid=920&userType=0&username=" + uname + "&password=" + pwd;
webView.postUrl(ConstValue.LIBRARY_ACCOUNT_WEB, EncodingUtils.getBytes(postData, "base64"));
}
public static void synCookies(Context context, String url) {
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
String newCookie = cookieManager.getCookie(url);
if(newCookie != null){
}
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
StringBuilder sbCookie = new StringBuilder();
sbCookie.append(String.format("xc=%s","5"));
sbCookie.append(String.format(";mgid=%s", "274"));
sbCookie.append(String.format(";maid=%s", "920"));
String cookieValue = sbCookie.toString();
// String cookies = "xc=5; mgid=274; maid=920;";
cookieManager.setCookie(url, "xc=5");//cookies是在HttpClient中获得的cookie
cookieManager.setCookie(url,"mgid=274");
cookieManager.setCookie(url,"maid=920");
CookieSyncManager.getInstance().sync();
newCookie = cookieManager.getCookie(url);
if(newCookie != null){
}
}
}