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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容