Selaa lähdekoodia

back系列API更新

leijie 7 vuotta sitten
vanhempi
commit
5bbec82ffb

+ 2 - 3
show-server/src/main/webapp/biz/js/plugins/pageHandler/pageA.js

@ -10,8 +10,7 @@ require([ "domReady!", "wadeMobile", "mobile", "util"], function(doc,
10 10
		Mobile.backWithCallback("回调:测试数据来自pageA");
11 11
	});
12 12
	
13
	WadeMobile.setBackCallListener(function(e){
14
		var data = e.data;
15
		WadeMobile.tip(data);
13
	Mobile.setBackCallListener(function(e){
14
		alert(e);
16 15
	});
17 16
});

+ 2 - 3
show-server/src/main/webapp/biz/js/plugins/pageHandler/pageHandler.js

@ -45,8 +45,7 @@ require(["domReady!","wadeMobile","mobile","jcl","iScroll","util"], function(doc
45 45
		Mobile.openPage("KeyDownListen");
46 46
	});
47 47
	
48
	WadeMobile.setBackCallListener(function(e){
49
		var data = e.data;
50
		WadeMobile.tip(data);
48
	Mobile.setBackCallListener(function(e){
49
		alert(e);
51 50
	});
52 51
});

+ 44 - 38
show-server/src/main/webapp/ipu/js/ipu.js

@ -1,7 +1,7 @@
1 1
(function () {
2 2
    function setup(jQuery, iScroll, Hammer, FastClick) {
3 3
        var ipu = {};
4
4

5 5
// Carousel
6 6
(function (ipu, $, iscroll) {
7 7
// carouselSlt应该是唯一的,否则怎么支撑多个回调,如果用户不需要多个回调,也不主动调用,则可以,先不管吧???
@ -142,7 +142,7 @@
142 142
    };
143 143

144 144
})(ipu || window, jQuery, iScroll);
145
145

146 146
// dtPicker  此版本最大值与最小值,存在问题,当时间跨过一天时
147 147
(function (ipu, $) {
148 148
    var Picker = ipu.Picker;
@ -790,7 +790,7 @@
790 790
        return new DtPicker(options);
791 791
    };
792 792
})(ipu || window, jQuery);
793
793

794 794
// 支持非循环
795 795
// size命名用的有点混淆。。
796 796
// 不能支持元素隐藏时,使用百比分处理移动距离。。。?
@ -889,12 +889,11 @@
889 889
            this._show(index, true);
890 890
        },
891 891
        show: function (index) {//跳到指定索引处
892
            // 用户指定跳时,在当前index==0时,涉及一个最近跳转处理,目前未处理,...不管了
893
            if (index > this.size || index < 0) {
894
                console.error("index超出范围!");
895
            } else {
896
                this._show(index); // 默认追加动画
892
            var index = index % size;
893
            if(index < 0 ){
894
                index = size + index;
897 895
            }
896
            this._show(index); // 默认追加动画
898 897
        },
899 898
        play: function () {
900 899
            this.options.autoPlay = true;
@ -1011,7 +1010,7 @@
1011 1010
        return new HammerCarousel(slt, options);
1012 1011
    };
1013 1012
})(ipu || window, jQuery,  Hammer);
1014
1013

1015 1014
(function (ipu, $) {
1016 1015
    //$ extends
1017 1016
    function __dealCssEvent(eventNameArr, callback) {
@ -1407,7 +1406,7 @@
1407 1406

1408 1407
    $(document).on('click', ' .ipu-modal-overlay, .ipu-popup-overlay, .ipu-close-popup, .ipu-open-popup, .ipu-close-picker', handleClicks);
1409 1408
})(ipu || window, jQuery);
1410
1409

1411 1410
(function (ipu, $) {
1412 1411
    NavBar.prototype.defaultOpt = {
1413 1412
        animate: false,           // 默认有动画
@ -1488,7 +1487,7 @@
1488 1487
        return new NavBar(slt, options);
1489 1488
    };
1490 1489
})(ipu || window, jQuery);
1491
1490

1492 1491
(function (ipu, $) {
1493 1492
    function __dealCssEvent(eventNameArr, callback) {
1494 1493
        var events = eventNameArr,
@ -1557,20 +1556,24 @@
1557 1556
    var animateInClass = "ipu-anim ipu-slideRightIn";
1558 1557
    var animateOutClass  = "ipu-anim ipu-slideRightOut";
1559 1558
    var eventName = "ipuUIPageBack";
1560
    var zeroPageClass = 'ipu-page-zero';
1561
    var zeroPagesClass = 'ipu-pages-zero';
1559
    var zeroPageClass = 'ipu-page-zero';   // 占位页面,对于为当前页面
1560
    var zeroPagesClass = 'ipu-pages-zero';   // 占位页面的特殊class,作用已忘记,应该是用来标记显示用
1561

1562

1562 1563

1563 1564
    page.options = {     // 那个窗口执行open,默认父窗口
1564
        target: window.parent, // 默认执行父窗口
1565
        backIndex: -1,    // 默认回退一页
1566
        closeIndex: -1,   // 默认关闭最近一个页面
1567
        params:{},        // post的默认参数
1568
        animate: true,     // 是否动画效果
1569
        showLoading: true,   // 是否显示加载消息
1570
        loadingMessage: '正在加载中',
1571
        method : null,     // 请求方式,用户不需要设置
1572
        minMessageTime: 500, // 最小显示加载时间,避免出现闪现的情况
1573
        callBack:function () { // 事件回调
1565
        target: window.parent, // 默认执行父窗口,方法:all
1566
        backIndex: -1,    // 默认回退一页         方法:back
1567
        closeIndex: -1,   // 默认关闭最近一个页面 方法:close
1568
        params:{},        // post的传参            方法:post
1569
        animate: true,     // 是否动画效果        方法:open post
1570
        showLoading: true,   // 是否显示加载消息  方法:open post
1571
        loadingMessage: '正在加载中',  //          方法:open post
1572
        method : null,     // 请求方式,内置参数,方法自己设置,用户不需要设置  方法:无
1573
        minMessageTime: 500, // 最小显示加载时间,避免出现闪现的情况 方法:open post
1574
        data: null,         // 回退时,回传参数, 方法:back
1575
        pageName: '',     // 给打开的页面命名,以便根据此页面名称来切换页面 方法:open post back close
1576
        callBack:function () { // 事件回调       方法:open post close back
1574 1577
        }
1575 1578
    };
1576 1579

@ -1587,9 +1590,9 @@
1587 1590
        }
1588 1591

1589 1592
        if(options.method == 'post'){
1590
            newPage = $("<div class='ipu-page' id='"+nowPageNo+"'><iframe class='ipu-page-iframe'></iframe></div>");
1593
            newPage = $("<div class='ipu-page' id='"+nowPageNo+"' data-name='"+options.pageName+"'><iframe class='ipu-page-iframe'></iframe></div>");
1591 1594
        }else{
1592
            newPage = $("<div class='ipu-page' id='"+nowPageNo+"'><iframe class='ipu-page-iframe' src='"+url+"'></iframe></div>");
1595
            newPage = $("<div class='ipu-page' id='"+nowPageNo+"' data-name='"+options.pageName+"'><iframe class='ipu-page-iframe' src='"+url+"'></iframe></div>");
1593 1596
        }
1594 1597

1595 1598
        var zeroPage = isZeroPage($(".ipu-page:last", pagesObj));
@ -1645,7 +1648,9 @@
1645 1648
        var page = null;
1646 1649
        var nowPage = $(".ipu-page.ipu-show", pagesObj);
1647 1650

1648
        if(backIndex == 0){
1651
        if(options.pageName){
1652
            page =  $(".ipu-page[data-name='"+options.pageName+"']:first", pagesObj);
1653
        }else if(backIndex == 0){
1649 1654
            page = $(".ipu-page:first", pagesObj);
1650 1655
        }else { // 越界的情况
1651 1656
            var prevPage = nowPage.prevAll(".ipu-page");
@ -1706,7 +1711,9 @@
1706 1711
        var closeIndex = options.closeIndex;
1707 1712
        var prevPage = $(".ipu-page.ipu-show", pagesObj).prevAll(".ipu-page");
1708 1713

1709
        if(closeIndex < 0){
1714
        if(options.pageName){
1715
            closeIndex =  $(".ipu-page[data-name='"+options.pageName+"']:first", pagesObj).index();
1716
        }else if(closeIndex < 0){
1710 1717
            closeIndex = -closeIndex -1;
1711 1718
        }else{
1712 1719
            closeIndex = prevPage.size() - closeIndex;
@ -1761,7 +1768,7 @@
1761 1768
    // 提供一个关闭一群窗口的方法
1762 1769
    ipu.page = page;
1763 1770
})(ipu || window, jQuery);
1764
1771

1765 1772
// picker
1766 1773
(function (ipu, $, Hammer) {
1767 1774
    var showItemSize = 9;   // 显示的子项数量,
@ -1850,7 +1857,6 @@
1850 1857
                "transform-origin": "center center -" + r + "px"
1851 1858
            });
1852 1859
            $(this).click(function () {
1853
                console.log('click');
1854 1860
                self.stopInertiaMove = true;
1855 1861
                self.setAngle(i * itemAngle, true);
1856 1862
            })
@ -2067,7 +2073,7 @@
2067 2073
    ipu.Picker = Picker;
2068 2074

2069 2075
})(ipu || window, jQuery, Hammer);
2070
2076

2071 2077
// popPicker
2072 2078
(function (ipu, $) {
2073 2079
    var Picker = ipu.Picker;
@ -2216,7 +2222,7 @@
2216 2222
    };
2217 2223

2218 2224
})(ipu || window, jQuery);
2219
2225

2220 2226
(function (ipu, $) {
2221 2227

2222 2228
    /**
@ -2267,7 +2273,7 @@
2267 2273
        return new progressBar(slt, options);
2268 2274
    };
2269 2275
})(ipu || window, jQuery);
2270
2276

2271 2277
(function (ipu, $, iScroll) {
2272 2278

2273 2279
    // 扩展参数,iscroll组件的参数选项
@ -2440,7 +2446,7 @@
2440 2446
    };
2441 2447

2442 2448
})(ipu || window, jQuery, iScroll);
2443
2449

2444 2450
// Tab
2445 2451
(function (ipu, $) {
2446 2452
    function Tab(holder, options) {
@ -2496,7 +2502,7 @@
2496 2502
    };
2497 2503
})(ipu || window, jQuery);
2498 2504

2499
2505

2500 2506
// tap点击效果处理,只针对jquery上面的click事件,依赖touch事件
2501 2507
(function (ipu, $) {
2502 2508
    var active = {};
@ -2659,7 +2665,7 @@
2659 2665
    ipu.active = active;
2660 2666
})(ipu || window, jQuery);
2661 2667

2662
2668

2663 2669
/*===========================
2664 2670
Device/OS Detection
2665 2671
===========================*/
@ -2668,8 +2674,8 @@ Device/OS Detection
2668 2674
    "use strict";
2669 2675
    var device = {};  // Classes
2670 2676
    var classNames = [];
2671
    var ua = navigator.userAgent;
2672

2677
    var ua = navigator.userAgent
2678
    
2673 2679
    // 这中针对ipu框架的情况,待测试
2674 2680
    if(ua.match(/ipumobile/i)){
2675 2681
        device.ios =  !!ua.match(/ios/i);
@ -2775,7 +2781,7 @@ Device/OS Detection
2775 2781

2776 2782
    ipu.device = device;
2777 2783
})(ipu || window, jQuery);
2778
2784

2779 2785

2780 2786
        // 初始化代码
2781 2787
        jQuery(function () {

+ 13 - 5
show-server/src/main/webapp/ipu/js/mobile/mobile-browser.js

@ -33,7 +33,7 @@ define(["ipu","browserTool","jcl"],function(ipu, browserTool,Wade) {
33 33
			if (param) {
34 34
				params = {data:param};
35 35
			}
36
			ipu.page.post(url,{params : params});
36
			ipu.page.post(url,{params : params, pageName: pageName});
37 37
			
38 38
		   /*
39 39
			* 为了适应微信,postPage方法也不适用
@ -67,16 +67,24 @@ define(["ipu","browserTool","jcl"],function(ipu, browserTool,Wade) {
67 67
			browserTool.ajax.html(action, param, callback, err);
68 68
		};
69 69
		/*回退到前一个界面*/
70
		this.back = function(index){
71
			ipu.page.back(index);
70
		this.back = function(pageName){
71
			ipu.page.back({pageName:pageName});
72 72
		};
73 73
		/*设置back监听事件*/
74 74
		this.onBack = function(callback){
75 75
			ipu.page.onBack(callback);
76 76
		};
77
		/*设置监听回调*/
78
		this.setBackCallListener = function(callback){
79
			ipu.page.onBack(function(data){
80
				if(data || data == 0){
81
					callback(data);
82
				}
83
			});
84
		}
77 85
		/*触发事件的回退,同onBack联合使用*/
78
		this.backWithCallback = function(result,index,err){
79
			var options = {backIndex:index,data:result};
86
		this.backWithCallback = function(result,pageName,err){
87
			var options = {pageName:pageName,data:result};
80 88
			ipu.page.back(options);
81 89
		};
82 90
		/******************基础UI**********************/

+ 9 - 1
show-server/src/main/webapp/ipu/js/mobile/mobile-client.js

@ -67,11 +67,19 @@ define(["wadeMobile","clientTool"],function(WadeMobile,clientTool) {
67 67
		};
68 68
		/*设置back监听事件*/
69 69
		this.onBack = function(callback){
70
			WadeMobile.setBackCallListener(function(e){
70
			this.setBackCallListener(function(e){
71 71
				var data = e.data;
72 72
				callback(data);
73 73
			});
74 74
		};
75
		/**back回调事件监听开始**/
76
		/*设置back监听回调*/
77
		this.setBackCallListener = function(callback){
78
			document.addEventListener("backCall", function(e){
79
				callback(e.data);
80
			});
81
		}
82
		/**back回调事件监听结束**/
75 83
		/*触发事件的回退,同onBack联合使用*/
76 84
		this.backWithCallback = function(data,tag,err){
77 85
			WadeMobile.backWithCallback(data,tag,err);

+ 0 - 6
show-server/src/main/webapp/ipu/js/mobile/wade-mobile.js

@ -327,7 +327,6 @@ define(["jcl","base64","ipu/js/mobile/expand-mobile.js","biz/js/common/biz-mobil
327 327
	})();
328 328
	/**物理按键监听end**/
329 329
	
330
	/**back回调事件监听开始**/
331 330
	WadeMobile.backevent = (function(){
332 331
		if(WadeMobile.isApp()){
333 332
			return {
@ -341,11 +340,6 @@ define(["jcl","base64","ipu/js/mobile/expand-mobile.js","biz/js/common/biz-mobil
341 340
		}
342 341
	})();
343 342
	
344
	WadeMobile.setBackCallListener = function(callback){
345
		document.addEventListener("backCall", callback);
346
	}
347
	/**back回调事件监听结束**/
348
	
349 343
	/************公共方法**************/
350 344
	/**
351 345
	 * @param {String}  errorMessage   错误信息