navigator
众所周知,在浏览器里,我们可以通过前进或者回退按钮来切换页面,iOS/Android 的navigator模块就是用来实现类似的效果的。除了前进、回退功能,该模块还允许我们指定在切换页面的时候是否应用动画效果。
API
导航跳转
注意:使用push,pushParam,pushFull打开的页面只能用back,backFull返回,使用present打开的页面,只能用dismiss关闭push打头的方法和present方法打头的方法区别是动画效果不一样,push是由右往左打开一个页面,present是由下往上打开/**@param url 相对地址(支持root:写法)*/push(url)/**@param url 相对地址(支持root:写法)@param param 参数*/pushParam(url,param )/**@param parameters (url:'地址',param:'参数',animate:'是否使用动画',isPortrait:'是否是竖屏')@param callback 页面返回时的回调*/pushFull(parameters,callback)/**关闭当前页面,返回上一个页面,*/back()/**关闭当前页面,返回上一个页面,同时带上参数@param param 带给上一个页面的参数@param animate 是否使用动画,(android无效)*/backFull(param,animate)/**打开一个页面,动画是从下往上弹出来*/present(url)/**打开一个页面,动画是从下往上弹出来@param parameters (url:'地址',param:'参数',animate:'是否使用动画',isPortrait:'是否是竖屏')@param callback 页面返回时的回调*/presentFull(parameters,callback)/**关闭,present开头方法打开的页面*/dismiss()/**关闭,present开头方法打开的页面,同时带上参数@param param 带给上一个页面的参数@param animate 是否使用动画,(android无效)*/dismissFull(param,animate)/*** 开启手势返回(仅对ios有效)**/enableBackGesture()
获取参数
注意:此方法只有写在onPageInit里面才能有效获取/**获取上一个页面传递来的参数,*/param()
定页返回
如果你打开的了多个页面,现在希望越过中间的页面,返回第一个或其它页面,这里的方法将帮你做到/**返回指定id的页面,id由setPageId方法设定*/backTo(id)/**设置当前页的id*/setPageId(id)/**将此页面及这个页面之后打开的页面纳入一个堆栈,*/setRoot(id)现在来说一下怎么达到效果,假设有A->B->C三个页面,现在希望从C直接回到A1.在A的onPageInit中调用setRoot('A'),setPageId('A')2.在C中backTo('A')
Demo
/**推入式跳转push(){var nav = weex.requireModule('navigator') ;//相对路径写法,也可以root:绝对路径nav.push('page1.js')}/**带参数推入式跳转pushWidthParam(){var self=this;var nav = weex.requireModule('navigator') ;var param={};param.a='value1'nav.pushParam('page1.js',param);//或者nav.pushFull({url: 'navlanscape.js',param: {a: '这是传过来的值'},animate:true,isPortrait:false}, (e) => {if (e != undefined)self.callbackdata = e.ok;})}/**弹出式跳转present(){var self=this;var nav = weex.requireModule('navigator') ;nav.present('page1.js')//或者nav.presentFull({url: 'navlanscape.js',param: {a: '这是传过来的值'},animate:true,isPortrait:false}, (e) => {if (e != undefined)self.callbackdata = e.ok;})},/**获取参数created:function(){var self=this;var globalEvent = weex.requireModule('globalEvent') ;globalEvent.addEventListener("onPageInit", function (e) {var navigator = weex.requireModule('navigator') ;var param=navigator.param();});}
