Android开发

使用weex时在Android中的跳转

2017-05-26  本文已影响0人  还是桃子好吃

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中的界面了

上一篇下一篇

猜你喜欢

热点阅读