ionic3完成整个APP开发所遇到的问题及解决方法

开发流程及部分功能实现

一、启动项目

  1. npm install 安装依赖
  2. 安装环境Cordova & Ionic CLI
  3. ionic serve 启动项目

二、关于打包

  1. 安装环境Android SDK
  2. 生成未签名apk包 ionic cordova build android --prod --release
  3. 生成keystore文件 keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
  4. 签名(目前我是使用第三方工具APKSign)

三、关于开发流程

  1. 如果需要新建page , 使用命令ionic g page PageName,新建components和services也是类似的操作,这样会自动添加在app.module中。
  2. 基本开发和vue类似,创建页面,引用你所需要的组件或者服务,然后进行开发。
  3. 用ionic自带的组件开发,如果遇到垂直居中问题,注意重写样式为px(整体换为rem后不需要)

四、关于路由

  1. 现在home页为主页面,其他页面均以push方式进入,pop方式返回。由localStorage里面的menuClose变量来控制首页是否显示菜单(初次进入默认不显示)

五、关于服务

  1. 现在服务里面基本只做获取数据操作,判断返回code这种都在页面里面完成。后续可以将判断code写成公共函数放于服务里面,然后只返回成功后的数据。(待优化)

开发所遇到问题

一、启动页和打包

  1. 关于启动页过长及出现白屏的问题,解决方式:
  • 打包时使用 ionic cordova build android --prod --release,可以将启动页大幅度缩短,打包后体积也大幅缩小。
  • 增加启动静态页时间<preference name="SplashScreenDelay" value="3000" /> 3000即为3秒,可以加长这个时间来避免出现白屏。
  1. 关于实机“The connection to the server was unsuccessful”报错,解决方式:
  • 此问题初步估计是因为网络不好导致第三方文件加载失败引起报错的,搜查文档基本是两张解决思路,一种延长加载时间<preference name="loadUrlTimeoutValue" value="700000" />默认加载时间为30s,可以修改为70s,基本不会再出现报错的情况;另外一种思路是减少Index文件所要加载的内容,做重定向到新的页面加载。第一种成功实现,第二种在重定向时报错,暂未成功解决。
  1. 关于启动页和图标
  • 只需要修改resources目录下的icon.png、splash.png,然后运行ionic resources即可。

二、关于菜单栏

  1. 菜单栏封装成组件,单独写一个menu component,并且挂在home页下。(一开始挂在app.html下,然后发现问题,app.html在未登录状态下,登录后获取个人信息不会再次加载,导致菜单栏没有个人信息数据)

三、关于父子组件数据传递

  1. 父向子传递数据
    父页面<order-item [orderItemData]="item"></order-item>
    子页面@Input() orderItemData;
  2. 子组件向父页面传递数据
    子页面 @Output() private childOuter = new EventEmitter();
    父页面 (childOuter)="getChildData($event)"
  3. 父页面调用子组件方法
    先在组件上添加标记 如<order-item #orderItem></order-item>
    里面添加@ViewChildren('orderItem') orderItems;声明一下子组件
    再用this.orderItems可以调用子组件里面的方法了

四、下拉加载和绝对定位FIXED出现冲突的问题

  1. 使用ion-refresher-content实现下拉加载的时候,如果页面同时存在绝对定位为FIXED的元素,将影响其定位。解决方法:
  • 修改scroll-content的transform属性,下拉加载模块会自动升成一个scroll-content的区域,因为其transform属性影响导致绝对定位失效。但是实际按此操作修改时并未成功。
  • 将绝对定位的元素放于ion-fat里面,ion-fat是官方提供的固定位置的容器,但是要注意里面必须要保留一个<button ion-fab style="display: none">Button</button>,不然会报错。包括ion-footer也可以放在里面来解决和下拉加载冲突的问题,注意z-index即可。

五、没做rem自适应导致的垂直居中等对齐问题

  1. 因为ionic自带组件很多都是rem自适应,而自己项目因为时间原因没有起手选择rem。导致后续各种垂直居中对齐出问题,解决方式:
  • 将原Ionic组件隐藏,重写一个新的遮罩在组件上面(此方法为一开始想到的,强行实现了一些简单的地方),不过后面发现问题很多,比如点击区域不够,挤压下面元素等等问题。不推荐使用。
  • 重写ionic组件样式,使用!importent 强制修改组件rem属性为px,从而避免自适应导致的垂直居中问题,可通用于输入框,选择框等等。此方法可以解决问题,不过还是推荐从一开始就使用rem,这样不同设备也不会出现字体大小不能自适应的问题。

六、返回需要重新加载数据

  1. 将获取数据放于生命周期ionViewDidEnter

TODO

  1. 目前只完成了安卓版本打包,后续还需要完成ios打包。
  2. 客户地址需要加导航/复制地址功能
  3. px使用rem替代 (优化)
  4. 增加分页功能 (优化)
  5. 将请求的code判断写成公共函数来处理 (优化)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,382评论 25 707
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,680评论 2 59
  • 连续听了几天科普节目。宇宙观、世界观没有太大的进步。反而对罗胖的说法:科学是冷漠、粗暴、傲慢的,有了更切身的体会。...
    大城山主阅读 379评论 0 0
  • 头顶红日 静坐海边 散落长发 做空禅,普修贤 无旁骛,闻幽香 ...
    南城忆北安阅读 227评论 0 2
  • 妹纸们,晚上好。 我知道有个叫马丽霞的妹纸,还没睡。 昨晚她上了我的车,今晚催我还不交作业。欧,不,是还不交作文。...
    大I铭宇哥阅读 505评论 14 5