1.打包后無樣式(多在加prod打包后):
此類情況多出現(xiàn)在用淘寶鏡像cnpm
進(jìn)行下載依賴所引起,嘗試刪除本地node_modules
,開啟vpn
,重新npm install
(切記不要用cnpm
,如果沒有vpn
,vpn推薦,30 ,50一年,本人一直在用,挺好的)。
2.升級為3.X版本后,使用懶加載,在自己代碼沒問題的情況下,老是報一些找不到module的錯誤
Cannot find module '../pages/tabs/tabs.module'
解決方法同上。
3.用storage進(jìn)行本地存儲時拿不到值
storage操作是異步的,嘗試在頁面的構(gòu)造器里去操作storage,then方法里去取值。
4.2個ion-datetime在同一個item里時,點擊都觸發(fā)的問題:
在此頁面的scss文件里加
ion-datetime {
position: relative;
}
5.改變popover的寬度等
.popover名字 .popover-content{
width: XXX;
}
6.改變導(dǎo)航欄顏色
在variables.scss里加$toolbar-ios-background:XXX
7.部分手機(jī)運(yùn)行,list橫線不顯示問題
在variables.scss里加
$hairlines-width: 1px;
$list-border-color: #e0dfe4;
8.真機(jī)本地圖片不顯示問題
圖片路徑從assets開始
9.ion-searchbar按鍵盤搜索鍵觸發(fā)
將(ionInput)
方法改為(search)
10.一些觸發(fā)事件
ion-select
、ion-toggle
用ionChange
;
ion-tab
用ionSelect
;
11.添加插件時報cordova-fetch
等錯誤
一般是cordova版本7.0以上出現(xiàn),嘗試命令行加--nofetch
試試,或者cordova版本降到6.5.0版本
12.添加android 平臺時報錯找不到Api.js
解決辦法同上,cordova 退回6.5.0版本
13.一些退出登錄或者修改密碼后需重新跳轉(zhuǎn)至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插件升級后不支持cordova-android@6.1.2
可以升級或者裝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
將內(nèi)容替換為:
@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" %*
)
后經(jīng)測試,發(fā)現(xiàn)還是不行,目前解決辦法是 升級node和npm
18年5月23日更新:
后來發(fā)現(xiàn)一種更好的處理方式,輕易可以解決:
在package.json
里加上
"config": {
"ionic_source_map_type": "cheap-source-map"
}
17 File Opener插件在android8以上打不開apk
在config.xml里加上
<platform name="android">
<config-file parent="/manifest" target="AndroidManifest.xml" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
</config-file>
</platform>
后經(jīng)測試發(fā)現(xiàn)另一個問題,在targetSdkVersion設(shè)置為23以上版本時,會報錯 exposed beyond app through Intent.getData()
解決方法:把targetSdkVersion設(shè)置為23,另一種方法改動較大
來源
方法2(未經(jīng)測試)
18年5月11日更新:
后來發(fā)現(xiàn)解決報錯 exposed beyond app through Intent.getData()
的最優(yōu)解決辦法,由于github的代碼作者沒有及時更新代碼至npm,其實最新版的插件已經(jīng)解決了這個問題,用命令cordova plugin add https://github.com/pwlin/cordova-plugin-file-opener2.git
添加插件,不要用ionic官網(wǎng)和github上的ionic cordova plugin add cordova-plugin-file-opener2
的命令,添加完插件后打包,發(fā)現(xiàn)又報另外一個代碼的錯誤
如圖,問題出在
Build.VERSION.CODE.N
上,解決這個,先在github上下載插件到本地,然后手動修改FileOpener2.java
文件的第110
行,將Build.VERSION.CODE.N
改為數(shù)字24
,然后添加本地的修改后的插件,ionic cordova plugin add 本地插件目錄
,最后重新打包,問題解決。
18 改變ion-item的高度
min-height
屬性
19 自定義頁面返回事件
(1)導(dǎo)航欄的返回按鈕
在html頁面: <ion-navbar #navbar> </ion-navbar>
在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,
//構(gòu)造函數(shù)中:在此頁面單獨控制android實體返回按鍵
this.unregister=this.platform.registerBackButtonAction(() => {
}, 2);
ionViewWillLeave() {
let me = this;
//移除實體返回按鍵監(jiān)聽
me.unregister();
}
20 新建ionic項目報錯
一般是報錯什么ECONNRESET
什么utils
第多少多少行
解決方法:是網(wǎng)絡(luò)原因(具體我也不知道),用4G網(wǎng)絡(luò),可以手機(jī)開熱點
21 alert等彈出框阻止關(guān)閉
return false
22用moment.js指定時間賦值給ion-datetime,時間差8小時的問題
- 可以直接用
moment().format();
- 可以
moment().format("YYYY-MM-DDTHH:mm:ss");
加個T
23 獲取app store 上已發(fā)布app 的版本
中國區(qū)域:http://itunes.apple.com/cn/lookup?id=xxx