本文是作者之前剛接觸移動端跨平臺開發,使用weex-eros開發項目平日里記下來的一些筆記,分享出來方便為新手解惑,weex-eros是weex的一套解決方法,使用vue語法糖,對於前端開發者來說可以輕鬆上手,文檔如下: weex:https://weex.apache.org/zh/ weex-e ...
本文是作者之前剛接觸移動端跨平臺開發,使用weex-eros開發項目平日里記下來的一些筆記,分享出來方便為新手解惑,weex-eros是weex的一套解決方法,使用vue語法糖,對於前端開發者來說可以輕鬆上手,文檔如下: weex:https://weex.apache.org/zh/ weex-eros:https://bmfe.github.io/eros-docs/#/ 分享一篇入門文章:https://zhuanlan.zhihu.com/p/51302413 由於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"參考文獻:https://blog.csdn.net/u010005281/article/details/79531474 點擊對話框背景或按返回按鈕對話框消失,解決方法: 在Android studio中查找ModalManager.java這個SDK源碼文件,將下圖圈起來的位置設置為false即可,對應的是setCancelabel(calcel)這個屬性。 參考文獻:https://www.cnblogs.com/howlaa/p/4126536.html WEEX的Picker模塊如果選項多的話會出現預設選項有多個的情況,需要將Picker模塊的SDK源碼替換成官方github上的最新源碼,希望EROS日後更新會同步到。 官方github源碼地址:https://github.com/apache/incubator-weex/blob/e82a37236ce8eeffe49f1bbacc20cbeec70bcd43/android/sdk/src/main/java/com/taobao/weex/appfram/pickers/WXPickersModule.java iOS屏幕旋轉: 勾選下方圈起來的兩個選項即可。 參考文獻:https://www.jianshu.com/p/e0e6b5493c34 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 init2.將Gemfile文件修改成以下內容,版本號可根據自己的需求修改 3.最終,如果要使用指定的CocoaPods去安裝插件只需要在pod命令上加上bundle exec首碼,例如:
bundle exec pod update參考文獻:https://www.jianshu.com/p/411003ac28e4