Browse Source

新增back回调方法 && 插件展示代码更新

leijie 8 years ago
parent
commit
2e8e6de6d2

+ 7 - 2
display-server/src/main/webapp/biz/js/plugin/pageHandler/pageA.js

@ -1,4 +1,4 @@
1
require([ "domReady!", "wadeMobile", "mobile", "util" ], function(doc,
1
require([ "domReady!", "wadeMobile", "mobile", "util"], function(doc,
2 2
		WadeMobile, Mobile) {
3 3
	$("#back").tap(function() {
4 4
		Mobile.back();
@ -7,6 +7,11 @@ require([ "domReady!", "wadeMobile", "mobile", "util" ], function(doc,
7 7
		Mobile.openPage("PageB");
8 8
	});
9 9
	$("#backCallback").tap(function() {
10
		
10
		Mobile.backWithCallback("回调:测试数据来自pageA");
11
	});
12
	
13
	WadeMobile.setBackCallListener(function(e){
14
		var data = e.data;
15
		WadeMobile.tip(data);
11 16
	});
12 17
});

+ 2 - 2
display-server/src/main/webapp/biz/js/plugin/pageHandler/pageB.js

@ -7,9 +7,9 @@ require([ "domReady!", "wadeMobile", "mobile", "util" ], function(doc,
7 7
		Mobile.back("PageHandler");
8 8
	});
9 9
	$("#backCallback").tap(function() {
10
10
		Mobile.backWithCallback("回调:测试数据来自pageB");
11 11
	});
12 12
	$("#backTagCallback").tap(function() {
13
		
13
		Mobile.backWithCallback("回调:测试数据来自pageB","PageHandler");
14 14
	});
15 15
});

+ 5 - 0
display-server/src/main/webapp/biz/js/plugin/pageHandler/pageHandler.js

@ -30,4 +30,9 @@ require(["domReady!","wadeMobile","mobile","util"], function(doc,WadeMobile,Mobi
30 30
	$("#menu").tap(function(){
31 31
		Mobile.openPage("KeyDownListen");
32 32
	});
33
	
34
	WadeMobile.setBackCallListener(function(e){
35
		var data = e.data;
36
		WadeMobile.tip(data);
37
	});
33 38
});

+ 2 - 2
display-server/src/main/webapp/res/js/mobile/mobile-client.js

@ -67,8 +67,8 @@ define(["wadeMobile","clientTool"],function(WadeMobile,clientTool) {
67 67
			WadeMobile.back(tag,err);
68 68
		};
69 69
		/*带回调的回退*/
70
		this.backWithCallback = function(callback,tag,err){
71
			WadeMobile.backWithCallback(callback,tag,err);
70
		this.backWithCallback = function(data,tag,err){
71
			WadeMobile.backWithCallback(data,tag,err);
72 72
		};
73 73
		/******************基础UI**********************/
74 74
		/*打开loading对话框*/

+ 21 - 3
display-server/src/main/webapp/res/js/mobile/wade-mobile.js

@ -74,9 +74,8 @@ define(["jcl","base64","res/js/mobile/expand-mobile.js","biz/js/common/biz-mobil
74 74
				execute("loadTemplate", [action,context],err);
75 75
			},back:function(tag,err){
76 76
				execute("back",[tag],err);
77
			},backWithCallback:function(callback,tag,err){
78
				WadeMobile.callback.storageCallback("backWithCallback",callback);
79
				execute("backWithCallback",[tag],err);
77
			},backWithCallback:function(data,tag,err){
78
				execute("backWithCallback",[data,tag],err);
80 79
			},getPage:function(callback,action,param,err){
81 80
				WadeMobile.callback.storageCallback("getPage",callback);
82 81
				execute("getPage", [action,param],err);
@ -336,6 +335,25 @@ define(["jcl","base64","res/js/mobile/expand-mobile.js","biz/js/common/biz-mobil
336 335
	})();
337 336
	/**物理按键监听end**/
338 337
	
338
	/**back回调事件监听开始**/
339
	WadeMobile.backevent = (function(){
340
		if(WadeMobile.isApp()){
341
			return {
342
				backCall:function(data){
343
					var backCallEvent = document.createEvent('Event');
344
					backCallEvent.initEvent("backCall",true,true);
345
					backCallEvent.data = data;
346
					document.dispatchEvent(backCallEvent);
347
				}
348
			};
349
		}
350
	})();
351
	
352
	WadeMobile.setBackCallListener = function(callback){
353
		document.addEventListener("backCall", callback);
354
	}
355
	/**back回调事件监听结束**/
356
	
339 357
	/************公共方法**************/
340 358
	/**
341 359
	 * @param {String}  errorMessage   错误信息

+ 8 - 7
display-server/src/main/webapp/template/webapp/plugin/PageHandler/PageA.html

@ -19,30 +19,31 @@
19 19
20 20
		<div class="c_list l_mt">
21 21
			<ul>
22
				<li>
22
				<li id="back">
23 23
					<div class="content">
24 24
						<div class="main">
25 25
							<div class="info">普通返回上一个界面</div>
26 26
						</div>
27
						<div class="fn fn-2" id="back">返回</div>
27
						<div class="fn fn-2" >返回</div>
28 28
					</div>
29 29
				</li>
30
				<li>
30
				<li id="toB">
31 31
					<div class="content">
32 32
						<div class="main">
33
							<div class="info">打开下一个界面,A to B</div>
33
							<div class="info">打开下一个界面(B)</div>
34 34
						</div>
35
						<div class="fn fn-2" id="toB">点击</div>
35
						<div class="fn fn-2" >点击</div>
36 36
					</div>
37 37
				</li>
38
				<li>
38
				<li  id="backCallback">
39 39
					<div class="content">
40 40
						<div class="main">
41 41
							<div class="info">返回上一个界面,回调</div>
42 42
						</div>
43
						<div class="fn fn-2" id="backCallback">返回回调</div>
43
						<div class="fn fn-2">返回回调</div>
44 44
					</div>	
45 45
				</li>
46
				
46 47
			</ul>
47 48
		</div>
48 49

+ 10 - 10
display-server/src/main/webapp/template/webapp/plugin/PageHandler/PageB.html

@ -19,36 +19,36 @@
19 19
20 20
		<div class="c_list l_mt">
21 21
			<ul>
22
				<li>
22
				<li  id="back">
23 23
					<div class="content">
24 24
						<div class="main">
25 25
							<div class="info">普通返回上一个界面</div>
26 26
						</div>
27
						<div class="fn fn-2" id="back">返回</div>
27
						<div class="fn fn-2">返回</div>
28 28
					</div>
29 29
				</li>
30
				<li>
30
				<li id="backTag">
31 31
					<div class="content">
32 32
						<div class="main">
33
							<div class="info">跳转,直接返回指定界面(PageHandler界面)</div>
33
							<div class="info">跳转,直接返回指定界面(首页)</div>
34 34
						</div>
35
						<div class="fn fn-2" id="backTag">跳转返回</div>
35
						<div class="fn fn-2">跳转返回</div>
36 36
					</div>
37 37
				</li>
38
				<li>
38
				<li  id="backCallback">
39 39
					<div class="content">
40 40
						<div class="main">
41 41
							<div class="info">返回上一个界面并回调</div>
42 42
						</div>
43
						<div class="fn fn-2" id="backCallback">返回回调</div>
43
						<div class="fn fn-2">返回回调</div>
44 44
					</div>
45 45
				</li>
46
				<li>
46
				<li  id="backTagCallback">
47 47
					<div class="content">
48 48
						<div class="main">
49
							<div class="info">跳转直接返回指定界面(UI界面)并回调</div>
49
							<div class="info">跳转直接返回指定界面(首页)并回调</div>
50 50
						</div>
51
						<div class="fn fn-2" id="backTagCallback">跳转返回回调</div>
51
						<div class="fn fn-2">跳转返回回调</div>
52 52
					</div>
53 53
				</li>
54 54
			</ul>

+ 1 - 0
display-server/src/main/webapp/template/webapp/plugin/PageHandler/PageHandler.html

@ -104,6 +104,7 @@
104 104
						<div class="more"></div>
105 105
					</div>
106 106
				</li>
107
				
107 108
			</ul>
108 109
		</div>
109 110
	</div>

+ 31 - 15
wade-mobile-func/src/com/wade/mobile/func/MobileUI.java

@ -45,6 +45,7 @@ import com.wade.mobile.frame.event.IKeyListenerEvent.Action;
45 45
import com.wade.mobile.frame.event.impl.TemplateWebViewEvent;
46 46
import com.wade.mobile.frame.plugin.Plugin;
47 47
import com.wade.mobile.frame.template.TemplateWebView;
48
import com.wade.mobile.frame.webview.WadeWebView;
48 49
import com.wade.mobile.ui.activity.CustomDialogActivity;
49 50
import com.wade.mobile.ui.activity.CustomWindowActivity;
50 51
import com.wade.mobile.ui.activity.SlidingMenuActivity;
@ -423,30 +424,45 @@ public class MobileUI extends Plugin {
423 424
		}
424 425
	}
425 426
	
426
	private void backWithCallback(JSONArray param) throws Exception{
427
	public void backWithCallback(JSONArray param) throws Exception{
427 428
		final FlipperLayout mainFlipper = wademobile.getFlipperLayout();
428 429
		if(mainFlipper != null){
429
			final String tag = param.getString(0);
430
			final String data = param.getString(0);
431
			final String tag = param.getString(1);
430 432
			if(!isNull(tag)){
431 433
				context.runOnUiThread(new Runnable() {public void run() {
432
						mainFlipper.back(new IFlipperLayoutListener() {
433
							
434
							@Override
435
							public void onBack(View currView, View preView) {
436
								// TODO Auto-generated method stub
434
							mainFlipper.back(tag, new IFlipperLayoutListener() {
437 435
								
438
							}
439
						});
440
					}
441
				});
436
								@Override
437
								public void onBack(View currView, View preView) {
438
									// TODO Auto-generated method stub
439
									if(currView instanceof WadeWebView){
440
										
441
									}
442
									if(preView instanceof WadeWebView){
443
										String result = encodeForJs(data);
444
										((WadeWebView) preView).executeJs(
445
												"WadeMobile.backevent.backCall('" + result + "');"
446
												);
447
									}
448
								}
449
							});
450
						}
451
					});
442 452
			}else {
443 453
				context.runOnUiThread(new Runnable() {public void run() {
444
						mainFlipper.back(tag, new IFlipperLayoutListener() {
454
						mainFlipper.back(new IFlipperLayoutListener() {
445 455
							
446
							@Override
456
							@Override 
447 457
							public void onBack(View currView, View preView) {
448
								// TODO Auto-generated method stub
449
								
458
								if(currView instanceof WadeWebView){
459
								}
460
								if(preView instanceof WebView){
461
									String result = encodeForJs(data);
462
									((WadeWebView) preView).executeJs(
463
											"WadeMobile.backevent.backCall('" + result + "');"
464
											); 
465
								}
450 466
							}
451 467
						});
452 468
					}