前言
weex页面跳转是很多开发者遇到的问题。navigator是Android和IOS的跳转模块,weex的Web是不支持navigator的,只能使用vue-route。
本篇主要讲Android的Native端的页面跳转问题。
正文
weex是使用模块navigator实现跳转的,该跳转只支持前进或者后退单个页面,这也比较符合Weex目前的市场定位-电商和平台类的应用,这类应用不会有比较复杂的跳转需求。
说到电商和平台,weex在控件方面似乎也偏电商类,什么轮播图,Tab页在Weex上都是很容易实现的~
始实现跳转
-
在代码中实现,官方文档是这么写的:
跳转代码
-
如果在生成的Android项目中,你就会碰到一些问题。
- 如果你没装weex-playground应用,你的项目跳转会报错ActivityNotFoundException;
- 如果你不小心装了weex-playground应用,你的本地跳转会失败,远程跳转会有一个不可取消的动画,并且跳转之后再也无法使用native端的方法了。 -
原因:navigator 的跳转是一个 Android 的
startActivity
的过程,所打开的 Activity 就是写有拦截器的 Activity 。而拦截器是跨应用的,所以我们在使用 navigator 模块跳转的时候会跳转到 Playground 的 Activity 中去。 -
解决方案(这里是Activity参考代码,可直接使用):
1.创建自己的专门用来渲染页面的Activity;
2.在manifests中给渲染页面的Activity添加拦截器(同时记得删除WXPageActivity的拦截器,切记);
最后的Manifests如下图:
添加拦截器的同时记得删除WXPageActivity的拦截器
-
Enjoy it.
网友评论