Weex開發(fā)之WEEX-EROS開發(fā)踩坑(小結(jié))
隨著Weex跨平臺技術的持續(xù)火熱,一時間涌現(xiàn)出了一大批基于Weex的開源解決方案,Weex Eros就是這么一個面向前端Vue的開源APP解決方案。 目前,如果直接使用Weex框架開發(fā)應用會存在很多痛點,諸如初始化啟動的環(huán)境問題、項目工程化問題、版本升級與版本兼容問題和不支持增量更新等,而Weex Eros等開源解決方案能對上述問題進行有效的解決。 Weex Eros的定位不是組件庫,而是基于Weex封裝的面向前端Vue的一整套APP開源解決方案,它關心的是整個APP項目。在Weex的強大支持下,用一份Vue代碼即可編譯出iOS、Android兩端原生的app,并且通過Weex Eros內(nèi)置的熱更新邏輯和開源的服務器邏輯,開發(fā)的APP還具有熱更新能力。
weex-eros是weex的一套解決方法,使用vue語法糖,對于前端開發(fā)者來說可以輕松上手,文檔如下:
weex:https://weex.apache.org/zh/
weex-eros:https://bmfe.github.io/eros-docs/#/
分享一篇入門文章:https://zhuanlan.zhihu.com/p/51302413
由于weex-eros安卓端久久不更新,導致開發(fā)過程中安卓端總會有那么些問題,需要大家動動手改改SDK源碼,可能需要對原生知識進行補充或者定制開發(fā)。
本文針對EROS 2018.10.11 更新的版本進行的介紹,原文鏈接:WEEX-EROS開發(fā)小筆記
1,屏幕旋轉(zhuǎn)問題
在android/WeexFrameworkWrapper/app/src/main/AndroidManifest.xml這個文件中,
控制屏幕旋轉(zhuǎn),需要添加:
android:screenOrientation="user" android:configChanges="orientation|keyboardHidden|screenSize"
- screenOrientation表示用戶當前首選方向,如果值是'sensor',關閉屏幕旋轉(zhuǎn)也是會旋轉(zhuǎn),會根據(jù)重力傳感器切換。
- configChanges用于配置橫豎片切換,配置configChanges為以上配置時,切屏不會重新調(diào)用各個生命周期,只會執(zhí)行onConfigurationChanged方法,Activity中的數(shù)據(jù)不會被銷毀。
2,鍵盤擋住輸入框問題
防止鍵盤擋住輸入框,自動將頁面上頂,需要添加如下配置:
android:windowSoftInputMode="adjustPan"
具體可以參考下圖:
3,點擊對話框背景或按返回按鈕對話框消失
使用Android studio打開WEEX-EROS的Android源碼,然后再源碼中查找ModalManager.java這個SDK源碼文件,將下圖圈起來的位置設置為false
即可,對應的是setCancelabel(calcel)這個屬性。
WEEX的Picker模塊如果選項多的話會出現(xiàn)默認選項有多個的情況,需要將Picker模塊的SDK源碼替換成官方github上的最新源碼,官方github源碼地址。
4,iOS屏幕旋轉(zhuǎn)
EROS本身是不支持橫屏開發(fā)的,如果要進行橫屏開發(fā),可以勾選Landscape Left和Landscape Right兩個選項,如下圖。
5, 修改包名修改原生Android工程包名
原生Android工程在打包的時候需要修改Android原生工程的包名,對于WEEX-EROS項目來說,只需要修改Android的gradle.properties的APPLICATION_ID即可。
修改原生iOS工程包名
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文件夾下執(zhí)行rm -rf .git清除原本的git信息,之后就可以將Android的源碼提交到git倉庫里了,之后拉下來不用再安裝Android依賴了。
6, CocoaPods多個版本切換問題
EROS推薦1.4.0,因為當前使用的WXDevtool插件(1.5.3)基于1.4.0,個人僅發(fā)現(xiàn)此插件有問題,可以使用如下的版本來查看本地的CocoaPods版本。
gem list --local | grep cocoapods
然后,可以使用下面的命令來查看當前系統(tǒng)默認使用CocoaPods版本。
pod --version
如果涉及多個CocoaPods版本,那么怎么管理CocoaPods呢?此時,我們需要安裝一個Bundler管理工具。
gem install bundler
使用方法
1.到Podfile文件所在目錄輸入以下命令,創(chuàng)建Bundler的配置文件Gemfile。
bundle init
2.將Gemfile文件修改成以下內(nèi)容,版本號可根據(jù)自己的需求修改。
3.最終,如果要使用指定的CocoaPods去安裝插件只需要在pod命令上加上bundle exec前綴。
bundle exec pod update
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
實例講解JavaScript中call、apply、bind方法的異同
這篇文章主要以實例講解的方式為大家總結(jié)了JavaScript中call、apply、bind方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09如何使用Javascript正則表達式來格式化XML內(nèi)容
本篇文章是對使用Javascript正則表達式來格式化XML內(nèi)容的方法進行了詳細的分析介紹,需要的朋友可以參考下2013-07-07利用javascript實現(xiàn)全部刪或清空所選的操作
這篇文章主要介紹了利用javascript實現(xiàn)全部刪或清空所選的操作,需要的朋友可以參考下2014-05-05Javascript實現(xiàn)仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
兼容:IE7以上版本及FF;(騰訊的WebQQ3.0好像也不兼容IE6,其實這樣挺好的)2011-04-04