本文是作者之前刚接触移动端跨平台开发,使用weex-eros开发项目平日里记下来的一些笔记,分享出来方便为新手解惑,weex-eros是weex的一套解决方法,使用vue语法糖,对于前端开发者来说可以轻松上手,文档如下:
分享一篇入门文章: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"
 

 
点击对话框背景或按返回按钮对话框消失,解决方法:
在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

WEEX-EROS开发小笔记的更多相关文章

  1. PIE 插件式开发小笔记__PIESDK学习体会

    基于PIE.NET-SDK插件式二次开发文档笔记:  PIE 插件式开发配置文件: 它里面一行如下:      理解上一行'Item'关系->    library:为插件类名(程序集名称+后缀 ...

  2. Angular开发小笔记

    一.父组件怎么覆盖子组件的样式呢 1./deep/(不建议这么做,以后angular会取消,因为这样写不利于组件的独立性) 在父组件的scss里面写: :host{ 子组件名 /deep/ label ...

  3. android studio开发小笔记1

    1.点击空白处隐藏软键盘 /* 隐藏软键盘 * */ public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == ...

  4. 转:【iOS开发每日小笔记(十一)】iOS8更新留下的“坑” NSAttributedString设置下划线 NSUnderlineStyleAttributeName 属性必须为NSNumber

    http://www.bubuko.com/infodetail-382485.html 标签:des   class   style   代码   html   使用   问题   文件   数据 ...

  5. 《C++游戏开发》笔记十一 平滑动画:不再颤抖的小雪花

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9430645 作者:七十一雾央 新浪微博:http:/ ...

  6. 【前端】移动端Web开发学习笔记【1】

    下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...

  7. Rest API 开发 学习笔记(转)

    Rest API 开发 学习笔记 概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着 ...

  8. 《MFC游戏开发》笔记十 游戏中的碰撞检测进阶:地图类型&障碍物判定

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9394465 作者:七十一雾央 新浪微博:http:// ...

  9. 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9374935 作者:七十一雾央 新浪微博:http:// ...

随机推荐

  1. APKMirror - 直接下载google play里的应用

    APKMirror - Free APK Downloads - Download Free Android APKs #APKPLZ https://www.apkmirror.com/

  2. TypeScript扩展类方法

    以数组删除元素为例 javascript数组删除一般是这样 const idx = selectedIDs.findIndex(x => x === deSelected); selectedI ...

  3. 触发redo写的几个条件

    触发redo写的几个条件   作者:eygle |English [转载时请标明出处和作者信息]|[恩墨学院 OCM培训传DBA成功之道]链接:http://www.eygle.com/archive ...

  4. python基本数据预处理语法函数(1)

    numpy包: ####数组###########from numpy import * shape #获取维度 size #获取长度 arange(0,5,1) #生成数组函数,从0到5以1为间隔 ...

  5. wl

    <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...

  6. PHP垃圾回收深入理解

    转摘于http://www.cnblogs.com/lovehappying/p/3679356.html PHP是一门托管型语言,在PHP编程中程序员不需要手工处理内存资源的分配与释放(使用C编写P ...

  7. 128、TensorFlow元数据MetaData

    #tf.Session.run也接收一个可选的参数options #能够让你来配置训练时的参数 #run_metadata参数让你能够收集关于训练的元信息 #列如你可以使用这些可选项来追踪执行的信息 ...

  8. 像计算机科学家一样思考python-第1章 程序之道

    1.7调试 程序是很容易出错的.因为某种古怪的原因,程序错误被称为bug,而查捕bug的过程称为调试(debugging). 一个程序中可能出现3种类型的错误:语法错误.运行时错误和语义错误.对它们加 ...

  9. 《图解设计模式》读书笔记1-2 Adapter模式

    目录 Adapter即适配器,可以类比为将220V的电压的电源转为5V电压的手机充电器,起转换的作用. 明确概念: Adaptee:被适配者,即220v电压的电源 Adapter:适配器,即手机充电器 ...

  10. 阻塞进程函数 wait()和waitpid()

    1.  wait()和waitpid()函数说明 wait() 进程一旦调用了wait(), 就立即阻塞自己,由wait自动分析是否有当前进程的某个子进程已经退出,如果让它找到了一个已经变成僵尸的子进 ...