本文是作者之前剛接觸移動端跨平台開發,使用weex-eros開發項目平日里記下來的一些筆記,分享出來方便為新手解惑,weex-eros是weex的一套解決方法,使用vue語法糖,對於前端開發者來說可以輕松上手,文檔如下:
weex-eros:https://bmfe.github.io/eros-docs/#/
由於weex-eros安卓端久久不更新,導致開發過程中安卓端總會有那么些問題,需要大家動動手改改SDK源碼,可能需要補充下原生知識了,作者目前已經轉戰flutter,偶爾會維護一下weex-eros開發的老項目,所以本文也將持續更新...(轉載請注明出處https://www.cnblogs.com/akun97/p/weex-eros.html)
針對EROS 2018.10.11 更新的版本:
是個人認為目前最穩定的版本,但是Android方面還是有許多坑:
在
android/WeexFrameworkWrapper/app/src/main/AndroidManifest.xml這個文件中,
控制屏幕旋轉,需要添加:
android:screenOrientation="user"//用戶當前首選方向,如果值是'sensor',關閉屏幕旋轉也是會旋轉,會根據重力傳感器切換。 android:configChanges="orientation|keyboardHidden|screenSize"//配置configChanges為以上配置時,切屏不會重新調用各個生命周期,只會執行
onConfigurationChanged方法。Activity中的數據不會被銷毀。
防止鍵盤擋住輸入框,自動將頁面上頂,需要添加:
android:windowSoftInputMode="adjustPan"



點擊對話框背景或按返回按鈕對話框消失,解決方法:
在Android studio中查找
ModalManager.java這個SDK源碼文件,將下圖圈起來的位置設置為
false即可,對應的是
setCancelabel(calcel)這個屬性。


WEEX的Picker模塊如果選項多的話會出現默認選項有多個的情況,需要將Picker模塊的SDK源碼替換成官方github上的最新源碼,希望EROS日后更新會同步到。


iOS屏幕旋轉:
勾選下方圈起來的兩個選項即可。


EROS本身不支持橫屏開發,有時使用內置瀏覽器<web>組件時,需要橫屏就會用到以上屏幕旋轉的處理方法,<web>組件相對定位外層父組件時,可以是用fixed相對屏幕定位的按鈕來制作成內置瀏覽器內部的按鈕,可以有很好的控制體驗。
如果有開發多個EROS項目記得要更改包名,避免引起同一台機器不能存在兩個項目的情況,
Android修改包名:


iOS修改包名:

以上是原生部分的填坑。
另外,Android修改完SDK源碼后需要對文件夾做修改才可以提交到git上,不然修改完沒提交到git,下次拉下來,重新安裝Android依賴就白改了,打開文件夾下的
.gitignore文件,刪除
wxframework和
sdk,然后添加如下:
# eros platforms/android/WeexFrameworkWrapper/app/src/main/assets/bundle.zip platforms/android/WeexFrameworkWrapper/app/src/main/assets/bundle.config platforms/ios/WeexEros/WeexEros/bundle.zip platforms/ios/WeexEros/WeexEros/bundle.config !.gitkeep ip.txt
然后分別進入
platforms/WeexFrameworkWrapper/nexus、
platforms/WeexFrameworkWrapper/wxframework文件夾下執行
rm -rf .git清除原本的git信息,之后就可以將Android的源碼提交到git倉庫里了,之后拉下來不用再安裝Android依賴了。
CocoaPods多個版本切換(EROS推薦1.4.0,因為當前使用的WXDevtool插件(1.5.3)基於1.4.0,個人僅發現此插件有問題):
命令行
gem list --local | grep cocoapods//查看當前電腦所有的CocoaPods版本,效果如下圖

pod --version//查看當前系統默認使用CocoaPods版本,效果如下圖

gem install bundler//安裝Bundler管理CocoaPods版本,可能需要sudo
管理方法
1.到
Podfile文件所在目錄輸入以下命令,創建
Bundler的配置文件
Gemfile
bundle init
2.將
Gemfile文件修改成以下內容,版本號可根據自己的需求修改


3.最終,如果要使用指定的CocoaPods去安裝插件只需要在
pod命令上加上
bundle exec前綴,例如:
bundle exec pod update