Weex Android加載遠端伺服器配置
一、伺服器生成JS Bundle并部署
我們在伺服器上使用的工具是Node.js,當然也可以是由Node.js打包生成的Weex。
我們先來說一下Node.js工具,因為個人偏向比較喜歡。Node.js的安裝就不說啦。
(一)、Node.js
1、配置Weex工程檔案夾,初始化Weex環境(配置環境見附件)
(1)、配置Weex工程檔案夾
最主要的檔案是紅色下劃線标出的檔案。
(2)、初始化Weex環境
等待Weex環境初始化完成之後,我們就會在工程目錄下面發現多了一個node_modules的檔案夾。見下圖。
2、我們将編寫好的we檔案放入src檔案夾下
3、進入src檔案夾,執行build并且把server啟動起來。
執行完npm run build之後,有綠色的成功提示,見圖。并且在src檔案夾下就會發現多生成了一個build檔案夾。在這個檔案夾中就是新編譯生成的JS Bundle檔案。這個JS Bundle檔案根據前面Weex 前端架構介紹上就可知道直接可被Android/IOS的Weex JS引擎解析并渲染。
我們,在這裡可以比較一下自己寫的JS Bundle和build生成的JS Bundle的對比:
我們都可以看到define和bootstrap函數,和相同的template以及module。這些詳細介紹,請見前文Weex 前端架構介紹。
廢話少說,我們先來看一下效果:
當我們在浏覽器中打開js時(http://192.168.56.1:8080/index.html?page=./src/build/hello.js,192.168.56.1寫你自己的IP位址哦),我們就可以很興奮的看到Hello World在向你招手啦。并且我們在伺服器上可以看到GET請求的網絡請求監聽和結果。看到沒有,總共有兩條GET請求,一條是請求我們的hello.js,還有一條是請求weex内置的weex.js。看到這,我相信大家都仿佛明白了些什麼。
當然,我們直接請求http://192.168.56.1:8080/src/build/hello.js就是我們生成的JS Bundle啦。
這是Web端,Weex追求三端一緻,我們怎麼能不來看看用戶端呢,下面以Android端為例。(下面會介紹如何讓Android加載JS Bundle,請大家稍稍等待哦,我們先來看看效果)
看到了沒,鮮花刷起來。
(二)、Weex:
在這裡我們直接使用生成的工具weex來展示一下效果,至于如何安裝weex工具的,這裡不說了,阿裡有提供的cli,直接安裝就是了。
直接運作weex hello.we即可。
之是以不喜歡用這種方式,主要是時間耗費長,而且生成東西太多。。。下圖是通過這個指令生成的目标檔案及相關。
我們再來看看dist檔案夾下是什麼
大家再來看看demo檔案夾。
看了這些,再結合方法一大家又瞬間明白了一些吧。
二、用戶端Android加載JS Bundle
兩種方式:直接放在本地Asserts檔案夾下,二是加載遠端JS Bundle。
下面是實作方法:
大家可以看到render()和renderByUrl()這兩個方法就明白了。
值得注意的是,浏覽圖檔需要自己實作圖檔擴充卡,我這邊是用ImageLoader實作了一個,當然今後也是要轉向Fresco的,因為目前Fresco用到了Drawee,一種基于ImageView的擴充類,故而不怎麼好辦,今後我的想法是直接将image解析成Fresco支援的Drawee。
附件有兩個檔案夾:
weex目錄為上文提到的配置環境。及we源檔案示例。
FirstWeex為Android用戶端工程。