分类
angular ionic

ionic 启动速度优化

启动白屏可以config.xml添加这个手动控制转圈圈的关闭

然后
app.component.ts中添加
platform.ready().then(() => {
(window).navigator.splashscreen.hide();

}

在准备就绪后手动关闭

设置超时时间 防止应用挂

<preference name=”SplashScreenDelay” value=”10000″/>
<preference name=”loadUrlTimeoutValue” value=”700000″/>

最重要的使用这个参数

ionic build android --prod --release

最后
通过抓包工具分析加载的时候下载了哪些包,外部JS等可以下载放在本地,可以有效降低用户网不好导致的启动慢

参考:https://blog.csdn.net/u010564430/article/details/61201769

分类
ionic

ionic3 控制屏幕方向

https://ionicframework.com/docs/native/screen-orientation/
先安装
$ ionic cordova plugin add cordova-plugin-screen-orientation
$ npm install --save @ionic-native/screen-orientation

然后引用

使用可以参照文档,

也可以
在 config.xml 中添加

portrait-primary => 不允许副竖屏
portrait-secondary => 不允许副竖屏
landscape-primary => 不允许副竖屏
landscape-secondary => 不允许副竖屏
portrait => 允许主竖屏和副竖屏
landscape => 允许主横屏和副横屏
any => 所有都允许

分类
ionic

ionic select 出错的问题

今天遇到一个很奇怪的问题,使用了ion-select 后,点击页面的任何地方都会弹出来,后来仔细看看,原来是必须写在ion-item 里,这样就可以解决这个问题

分类
ionic

ionic 存储在本地文件 以json为例

存储示例
//jsonList 是一个json对象
let jsonstr = JSON.stringify(this.jsonList);
//externalCacheDirectory 是安卓的一个可读写的目录 “temp.json”是文件名 replace: true 是指可以覆盖
this.file.writeFile(this.file.externalCacheDirectory, “temp.json”, jsonstr, { replace: true }).then((res) => {
alert(“写入成功”);
}).catch((error) => {
console.log(error);
})
读取
//externalCacheDirectory 是安卓的一个可读写的目录 “temp.json”是文件名
this.file.readAsText(this.file.externalCacheDirectory, “temp.json”).then((res) => {
//将JSON字符变成JSON对象
let json = JSON.parse(res);
console.log(json);
})
分类
ionic

ion-infinite-scroll 使用总结

网上很多都是旧的版本,如
<ion-infinite-scroll
icon=“ion-loading-a”
ng-if=“!isMax&&list.length!=0”
distance=“5%”
immediate-check=“true”
on-infinite=“loadData();”>
</ion-infinite-scroll>
在新版本中,要控制是否起作用,使用*ngIf就可以了
<ion-infinite-scroll *ngIf=”isWork” (ionInfinite)=”doInfinite($event)”>
<ion-infinite-scroll-content></ion-infinite-scroll-content>
</ion-infinite-scroll>
分类
ionic

ionic 阻止冒泡事件

一句话教程

click(){

//阻止冒泡
event.stopPropagation();

}

分类
ionic

ionic3 踩坑小集

1.地图一旦涉及键盘的弹出,有概率出现白屏,需要地图重绘一下。
2.地图的交互要考虑到手机的屏幕较小,不能采用传统的鼠标点选的方式,这样用户使用的时候,体验非常差。目前采用的是移动底图,用户只需要控制屏幕中心在所选点的附件就可以。
3.页面上的任何按钮应该注意与地图的颜色差异,如果地图是浅色的,那么按钮应该是有辨识度,应该采用深色。反之,也要注意。
4.获取地理位置有些人很大的可能会失败,目前原因还不清楚,和手机很有关系。(电脑端定位是靠ip地址的,需要翻墙)
5.用户的网络很不稳定,若服务器压力能力较强,现有(用户数*5)的并发也可以承受,那么可以采用,多发请求的方式来提高用户使用请求的成功率。
6.接口一定要做压力测试,要将预计用户数*6的可能请求数进行测试,有时候出现问题不是代码问题,是服务器资源不够导致的,合理的压力测试能尽早估计出合适的服务器资源(要配合运维的服务器完整监控)
7.拍照的时候ionic插件允许使用3种返回,一种返回base64,两种返回路径,可以的情况下,优先要考虑返回路径,因为base64转图太大了,现在的手机像素太高了,一定要做好压缩处理。
8.再开发代码的过程中,要注意解耦,通过统一的命名,可以让代码通用,加开开发速度的同时,bug也大大减少了。
9.

Not allowed to load local resource

出现这个错误的时候,看看是不是使用了ionic cordova run android –c –l
改用 ionic cordova run android 看看问题是否解决了
10.ionic 是可以读取本地文件的,但是直接写地址不行。(2018/7/12 测试,android上是可以直接读取本地目录的,不行的话可以试试把本地目录

replace(/\//g, “\/\/”);