1.打包后无样式(多在加prod打包后):
此类情况多出现在用淘宝镜像cnpm
进行下载依赖所引起,尝试删除本地node_modules
,开启vpn
,重新npm install
(切记不要用cnpm
,如果没有vpn
,vpn推荐,30 ,50一年,本人一直在用,挺好的)。
2.升级为3.X版本后,使用懒加载,在自己代码没问题的情况下,老是报一些找不到module的错误
Cannot find module '../pages/tabs/tabs.module'
解决方法同上。
3.用storage进行本地存储时拿不到值
storage操作是异步的,尝试在页面的构造器里去操作storage,then方法里去取值。
4.2个ion-datetime在同一个item里时,点击都触发的问题:
在此页面的scss文件里加
ion-datetime {
position: relative;
}
5.改变popover的宽度等
.popover名字 .popover-content{
width: XXX;
}
6.改变导航栏颜色
在variables.scss里加$toolbar-ios-background:XXX
7.部分手机运行,list横线不显示问题
在variables.scss里加
$hairlines-width: 1px;
$list-border-color: #e0dfe4;
8.真机本地图片不显示问题
图片路径从assets开始
9.ion-searchbar按键盘搜索键触发
将(ionInput)
方法改为(search)
10.一些触发事件
ion-select
、ion-toggle
用ionChange
;
ion-tab
用ionSelect
;
11.添加插件时报cordova-fetch
等错误
一般是cordova版本7.0以上出现,尝试命令行加--nofetch
试试,或者cordova版本降到6.5.0版本
12.添加android 平台时报错找不到Api.js
解决办法同上,cordova 退回6.5.0版本
13.一些退出登录或者修改密码后需重新跳转至LoginPage的情况
this.app.getRootNav().setRoot('LoginPage');
14 在build ios 时报错
Error: Error code 65 for command: xcodebuild with args: -......
或者:
2 duplicate symbols for architecture ...
尝试remove ios platform ,重新add,如果还是不行,
删除cordova-plugin-console插件再试
15 新建项目打包报错
类似
这是因为file插件升级后不支持[email protected]
可以升级或者装file插件的低版本(4.3.3版本可用)
16 ionic项目页面增多,代码量大的时候打包报错FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
打开node_modules/.bin/ionic-app-scripts.cmd
将内容替换为:
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\..\@ionic\app-scripts\bin\ionic-app-scripts.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node --max_old_space_size=4096 "%~dp0\..\@ionic\app-scripts\bin\ionic-app-scripts.js" %*
)
来源
后经测试,发现还是不行,目前解决办法是 升级node和npm
18年5月23日更新:
后来发现一种更好的处理方式,轻易可以解决:
在package.json
里加上
"config": {
"ionic_source_map_type": "cheap-source-map"
}
来源,duydao的回答
17 File Opener插件在android8以上打不开apk
在config.xml里加上
来源
后经测试发现另一个问题,在targetSdkVersion设置为23以上版本时,会报错 exposed beyond app through Intent.getData()
解决方法:把targetSdkVersion设置为23,另一种方法改动较大
来源
方法2(未经测试)
18年5月11日更新:
后来发现解决报错 exposed beyond app through Intent.getData()
的最优解决办法,由于github的代码作者没有及时更新代码至npm,其实最新版的插件已经解决了这个问题,用命令cordova plugin add https://github.com/pwlin/cordova-plugin-file-opener2.git
添加插件,不要用ionic官网和github上的ionic cordova plugin add cordova-plugin-file-opener2
的命令,添加完插件后打包,发现又报另外一个代码的错误
如图,问题出在
Build.VERSION.CODE.N
上,解决这个,先在github上下载插件到本地,然后手动修改
FileOpener2.java
文件的第
110
行,将
Build.VERSION.CODE.N
改为数字
24
,然后添加本地的修改后的插件,
ionic cordova plugin add 本地插件目录
,最后重新打包,问题解决。
18 改变ion-item的高度
min-height
属性
19 自定义页面返回事件
(1)导航栏的返回按钮
在html页面:
在ts:
import {ViewChild } from '@angular/core';
@ViewChild('navbar') navBar: Navbar;
ionViewDidEnter() {
let me = this;
me.navBar.backButtonClick = () => {
.....
};
}
(2)android实体按键的返回
import { Platform } from 'ionic-angular';
unregister:any;
public platform: Platform,
//构造函数中:在此页面单独控制android实体返回按键
this.unregister=this.platform.registerBackButtonAction(() => {
}, 2);
ionViewWillLeave() {
let me = this;
//移除实体返回按键监听
me.unregister();
}
20 新建ionic项目报错
一般是报错什么ECONNRESET
什么utils
第多少多少行
解决方法:是网络原因(具体我也不知道),用4G网络,可以手机开热点
21 alert等弹出框阻止关闭
return false
22用moment.js指定时间赋值给ion-datetime,时间差8小时的问题
- 可以直接用
moment().format();
- 可以
moment().format("YYYY-MM-DDTHH:mm:ss");
加个T
23 获取app store 上已发布app 的版本
中国区域:http://itunes.apple.com/cn/lookup?id=xxx
24 解决Xcode10 library not found for -lstdc++ 找不到问题
解决方法