使用weex时在Android中的跳转

weex小菜鸟一只,最近在用weex做项目,其中Android端进行界面跳转所采用的方案是,将编写好的weex界面通过webpack打包生成js文件,然后将这些js文件放置在Android项目的assets目录下进行跳转加载。跳转的weex代码为:

var url = weex.config.bundleUrl url = url.split('/').slice(0, -1).join('/') + '/' + path + '.js' navigator.push({ url: url, animated: 'true' })
然后就一直跳转不成功,看了下weex navigator.push()的源码发现这个默认是加载网络的url,所以在Android里面正确的跳转方式应该是跳转activity,在跳转的activity里面重新进行跳转目标地址的渲染,上网搜发现需要在AndroidManifest.xml文件的activity定义里如下设置:

        <intent-filter>

            <action android:name="android.intent.action.VIEW"/>
            <action android:name="com.alibaba.weex.protocol.openurl"/>

            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="com.taobao.android.intent.category.WEEX"/>

            <data android:scheme="http"/>
            <data android:scheme="https"/>
            <data android:scheme="file"/>
        </intent-filter>

`
后来发现上面的这些配置如果是通过webpack生成的Android项目会自带这些 = =!

在activity中可以通过

Uri uri = getIntent().getData();

获取到跳转的目标路径,然后再按照这个路径进行渲染就能够实现加载本地assets中的界面了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容