wangxl лет назад: 8
Родитель
Сommit
33ae285778

+ 0 - 78
wade-mobile-func/src/com/wade/mobile/func/IpuWindowWebView.java

@ -1,78 +0,0 @@
1
package com.wade.mobile.func;
2
3
import java.util.Map;
4
5
import android.view.KeyEvent;
6
import android.webkit.WebView;
7
import android.widget.LinearLayout;
8
9
import com.ai.ipu.mobile.util.IpuMobileUtility;
10
import com.ailk.common.data.impl.DataMap;
11
import com.wade.mobile.frame.IWadeMobile;
12
import com.wade.mobile.frame.activity.WadeMobileActivity;
13
import com.wade.mobile.frame.client.WadeWebViewClient;
14
import com.wade.mobile.frame.config.ServerPageConfig;
15
import com.wade.mobile.frame.event.impl.TemplateWebViewEvent;
16
import com.wade.mobile.frame.template.TemplateWebView;
17
import com.wade.mobile.ui.anim.AnimationResource;
18
import com.wade.mobile.ui.view.FlipperLayout;
19
import com.wade.mobile.util.Messages;
20
21
/**
22
 * IpuWindowWebView用于替换CustomWindowActivity,保留openWindow和closeWindow的API使用
23
 */
24
public class IpuWindowWebView extends TemplateWebView {
25
	
26
	public IpuWindowWebView(IWadeMobile wademobile) {
27
		super(wademobile);
28
	}
29
	
30
	@Override
31
	protected void initialize() {
32
		setWebViewClient(new WadeWebViewClient(wademobile,
33
				new TemplateWebViewEvent(wademobile) {
34
					@Override
35
					public void loadingFinished(WebView view, String url) {
36
						wademobile.getFlipperLayout().showNextView();
37
					}
38
				}));
39
		clearCache(true);
40
		setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
41
		((WadeMobileActivity) wademobile).getWebviewSetting().setWebViewStyle(this);
42
	}
43
44
	public void openWindow(String pageAction, String data) throws Exception {
45
		/* 获取模板相对路径 */
46
		final String templatePath = ServerPageConfig.getTemplate(pageAction);
47
		if (templatePath == null || "".equals(templatePath)) {
48
			IpuMobileUtility.error(Messages.NO_TEMPLATE + ",Action:" + pageAction);
49
		}
50
		
51
		Map<?, ?> dataMap = null;
52
		if(data != null) {
53
			dataMap = new DataMap(data.replaceAll("\"null\"", "\"\"").replaceAll("null", "\"\""));
54
		}
55
		FlipperLayout flipperLayout = wademobile.getFlipperLayout();
56
		flipperLayout.setAnimation(AnimationResource.pushLeft[0],
57
				AnimationResource.pushLeft[1]);
58
		flipperLayout.setBackAnimation(AnimationResource.pushRight[0],
59
				AnimationResource.pushRight[1]);
60
		flipperLayout.addNextView(this);// 增加view
61
		flipperLayout.setPreCurrView(this);
62
		loadTemplate(templatePath, dataMap);
63
		
64
	}
65
66
	public void closeWindow(String resultData) {
67
		wademobile.getFlipperLayout().back();
68
	}
69
	
70
	@Override
71
	public boolean onKeyDown(int keyCode, KeyEvent event) {
72
		if (keyCode == KeyEvent.KEYCODE_BACK) {
73
			closeWindow(null);
74
			return true;
75
		}
76
		return super.onKeyDown(keyCode, event);
77
	}
78
}

+ 13 - 39
wade-mobile-func/src/com/wade/mobile/func/MobileUI.java

@ -1,15 +1,5 @@
1 1
package com.wade.mobile.func;
2 2

3
import java.net.URLDecoder;
4
import java.text.ParseException;
5
import java.text.SimpleDateFormat;
6
import java.util.Calendar;
7
import java.util.Date;
8
import java.util.Map;
9
import java.util.Stack;
10

11
import org.json.JSONArray;
12

13 3
import android.app.AlertDialog;
14 4
import android.app.AlertDialog.Builder;
15 5
import android.app.DatePickerDialog;
@ -23,7 +13,6 @@ import android.webkit.WebView;
23 13
import android.widget.DatePicker;
24 14
import android.widget.LinearLayout;
25 15
import android.widget.TimePicker;
26

27 16
import com.ai.ipu.mobile.app.AppInfoUtil;
28 17
import com.ai.ipu.mobile.ui.HintUtil;
29 18
import com.ai.ipu.mobile.ui.UiTool;
@ -56,6 +45,15 @@ import com.wade.mobile.ui.layout.ConstantParams;
56 45
import com.wade.mobile.ui.view.FlipperLayout;
57 46
import com.wade.mobile.util.Constant;
58 47
import com.wade.mobile.util.Messages;
48
import org.json.JSONArray;
49

50
import java.net.URLDecoder;
51
import java.text.ParseException;
52
import java.text.SimpleDateFormat;
53
import java.util.Calendar;
54
import java.util.Date;
55
import java.util.Map;
56
import java.util.Stack;
59 57

60 58
public class MobileUI extends Plugin {
61 59
	private static SimpleProgressDialog progressDialog = null;
@ -791,23 +789,9 @@ public class MobileUI extends Plugin {
791 789
	public void openWindow(JSONArray param) throws Exception {
792 790
		final String pageAction = param.getString(0);
793 791
		final String data = param.getString(1);
794
		/*放弃使用CustomWindowActivity*/
795
		/*Intent intent = new Intent(context, CustomWindowActivity.class);
796
		intent.putExtra(CustomWindowActivity.KEY_PAGE_ACTION, pageAction);
797
		intent.putExtra(CustomWindowActivity.KEY_DATA, data);
798
		startActivityForResult(intent, REQUEST_CODE_CUSTOM_WINDOW);*/
799
		
800
		context.runOnUiThread(new Runnable() {
801
			@Override
802
			public void run() {
803
				IpuWindowWebView webView = new IpuWindowWebView(wademobile);
804
				try {
805
					webView.openWindow(pageAction, data);
806
				} catch (Exception e) {
807
					e.printStackTrace();
808
				}
809
			}
810
		});
792

793
        openTemplate(pageAction, isNull(data) ? null : new DataMap(data),
794
                true);
811 795
	}
812 796

813 797
	/**
@ -820,20 +804,10 @@ public class MobileUI extends Plugin {
820 804

821 805
			@Override
822 806
			public void run() {
823
				IpuWindowWebView webView = (IpuWindowWebView) wademobile.getFlipperLayout().getCurrView();
824
				webView.closeWindow(resultData);
807
                wademobile.getFlipperLayout().back();
825 808
				plugin.callback(resultData);
826 809
			}
827 810
		});
828
		/*放弃使用CustomWindowActivity*/
829
		/*int resultState = isNull(param.getString(1)) ? CustomWindowActivity.SUCCESS_CODE
830
				: param.getInt(1);
831
		if (context instanceof CustomWindowActivity) {
832
			((CustomWindowActivity) context).closeWindow(resultData,
833
					resultState);
834
		} else {
835
			HintUtil.alert(context, "无窗口可以关闭!");
836
		}*/
837 811
	}
838 812
	
839 813
	@Override