阿里新出的weex,我一個做android的也過來湊個熱鬧,自己做了一個簡單的demo,是一個知乎新聞+日記的APP,功能比較簡單,代碼也是最基本的寫法和用法,初學weex的童鞋們可以參考使用學習一下。
1、項目地址
2、配置環境
這個大家可以從weex官網去看。weex官網
3、運行項目 terminal進入到項目更目錄,執行命令:
npm install執行腳本,把we文件編譯成js文件:
./weextwo繼續執行腳本,將上一步生成的js文件復制到android的項目中:
./weextwo android用AndroidStudio或者eclipse打開playground項目,好啦,這樣你就可以看到效果啦!
下面這些問題就是我在做weextwo的時候遇到的問題。
1、運行調試
我這里使用的方法其實就是講生成的js文件放到android中運行的,當然weex是支持類似RN那樣,pc作為服務器將生成的bundle分發到真機上,只要修改代碼,真機就可以立即看到結果。 不過weex文檔有點亂,所以相關東西還沒開始寫,大家可以去探究探究。
2、網絡請求
網絡請求返回的數據格式問題,這個主要是要會weex debug,對js加斷點,調試,還要主要method和created、ready是兩個范圍的函數(切忌不要把created方法寫到method中),method是你自己要定義的方法,created和ready是weex自帶的聲明周期方法。 因為weex還沒有很好的開發工具,所以我暫時用的webstorm,但是webstorm無法自動化we的格式,所以我當時在寫第一個界面的時候就卡住了,一直沒有進行我created中的方法,后面才發現,原來自己把created寫到method中去了,大家一定要注意了。
3、list的坑
list的每個item點擊傳入一個id的時候,通過var itemid = e.target.attr.newsid來獲取組件中newsid參數值,這種方式遇到一個非常非常奇葩的坑。就是如果這個組件是你自己定義的話,沒法獲取到,必須是要原生的組件才能獲取的到,具體原因還未查明。
4、文檔錯誤
1)webview和imageview的時候,src前面還有一個:,怪不得我開始一直檢查不到問題,還有目前webview好像還不支持顯示html的功能。
2)textarea和input中需要監控change和input的時候,input的寫法是 oninput=“onTextAreaChange”,并不是文檔中那種寫法,試過,不行。
5、this的作用范圍
this的范圍不包括回調函數,所以如果要在回調函數中改變data中的數據,我們需要在函數中聲明一個局部變量,使self=this,這個self的作用范圍就在回調函數中。
6、storage問題 因為你存儲或者獲取的時候都是在回調函數中獲取的,這是一個異步的過程,所以你不能在執行完一個函數之后,直接在下面的過程中,使用回調得到的結果,這個時候回調的結果可能還沒拿到,所以下面的過程都要放到回調函數中去。這個地方坑了我老半天。
好了,最后我們看一下,我們app的運行效果吧!
還有上拉和下拉刷新,我沒有截圖下來,大家可以去試試。
項目源碼
新聞熱點
疑難解答