ionic2+问题集锦(持续更新)

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-selection-toggleionChange
ion-tabionSelect

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的命令,添加完插件后打包,发现又报另外一个代码的错误

ionic2+问题集锦(持续更新)_第1张图片
image.png

如图,问题出在 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++ 找不到问题

解决方法

你可能感兴趣的:(ionic2+问题集锦(持续更新))