ionic3学习笔记
一、钩子函数
ionViewDidLoad 第一次调用 返回void
ionViewWillEnter 每次调用 返回void
ionViewDidEnter 每次调用 返回void
ionViewWillLeave 每次调用 返回void
ionViewDidLeave 每次调用 返回void
ionViewWillUnload 每次调用 返回void
ionViewCanEnter 每次调用 返回boolean
ionViewCanLeave 每次调用 返回boolean
二、创建
ionic g page YourPageName //创建新页面
ionic g directive YourPageName //创建指令
ionic g component YourComponentName //创建组件
ionic g provider YourProviderName //创建服务
ionic g pipe YourPipeName //创建过滤器
自定义组件
1.ionic g component yourComponetName
2.在app.module.ts里的imports声明
3.在使用自定义组件的module.ts中引入compenentsModule文件 并在imports添加compenentsModule
自定义过滤器
1.ionic g pipe yourPipeName
2.在使用过滤器的module.ts中引入pipes.module.ts文件,并在import添加pipes.module.ts的名字
3.不能在app.module.ts中引入pipe文件 否则会重复报错
三、禁止横屏
1.安装插件
ionic cordova plugin add cordova-plugin-screen-orientation
2.在config.xml文件中添加
<preference name="Orientation" value="portrait" />
四、创建项目和打包
1、创建项目
1)npm install -g ionic@latest
2)npm start projectName tabs(blank tabs sidemenu super tutorial)//blank:空白 tabs:简单的三个选项页 sidemenu:有侧边栏布局 super:有超过14个开发页面 tutorial引导式启动项目
3)cd projectName
4) ionic serve
2、打包
1)安装corodva
npm install -g cordova
2)添加平台
cordova platform add android/ios
3)在真机上运行
ionic cordova run android/ios --prod --release
五、ionic3生成二维码
1.npm install angular2-qrcode --save
2.在使用页面的module中添加 import { QRCodeModule } from 'angular2-qrcode',以及在
imports添加QRCodeModule
3.在html中添加 <qr-code [value]="'All QR Code data goes here!'" [size]="150"></qr-code>
六、cordova build android 报错
错误1:processDebugResourcesC:\Users\suyun\.gradle\caches\transforms-1\files-1.1\appcompat-v7-23.4.0.aar\5ae564cae42bc9893a31775808c42e8a\res\values\values.xml:102:5-69: AAPT: error: resource android:attr/fo
ntVariationSettings not found.
C:\Users\suyun\.gradle\caches\transforms-1\files-1.1\appcompat-v7-23.4.0.aar\5ae564cae42bc9893a31775808c42e8a\res\values\values.xml:102:5-69: AAPT: error: resource android:attr/ttcIndex not found.
解决方案:
在platform 下的 build.gradle 中找到 dependencies对象,在后面添加:
configurations.all {
resolutionStrategy.force 'com.android.support:support-v4:26+'
}
错误2:
* What went wrong:
Execution failed for task ':transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lorg/apache/cordova/BuildHelper;
错误由于文件有冲突引起,解决方法:
找到platforms/android/CordovaLib/src/org/apache/cordova下的BuildHelper.java文件删除掉即可
错误3:
* What went wrong:
Execution failed for task ':transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lorg/apache/cordova/PermissionHelper;
错误由于文件有冲突引起,解决方法:
找到platforms/android/CordovaLib/src/org/apache/cordova下的PermissionHelper.java文件删除掉即可
七、websock推送
1)安装sockjs-client
npm install sockjs-client --save
2)安装stompjs
npm install stompjs --save
3)示例代码
import { Injectable } from '@angular/core';
import SockJS from 'sockjs-client';
import Stomp from 'stompjs';
import { Util } from '../util/utils';
@Injectable()
export class Sock {
web_sock:any = {};
constructor(private util: Util){}
subscribe (url, $id, callback) {
let options = {},
socket = new SockJS(this.util.wsUrl + "/ws"),
stompClient = Stomp.over(socket);
stompClient.connect(options, (frame)=> {
this.web_sock[$id] = stompClient.subscribe(url, callback);
});
};
//取消订阅
unSubscribe ($id) {
if(!this.web_sock[$id]) return;
this.web_sock[$id].unsubscribe();
delete this.web_sock[$id];
};
}
八、常用Cordova插件
1.图片选择器:"cordova-plugin-telerik-imagepicker": "^2.1.8"
2.相机:"cordova-plugin-camera": "^2.4.1"
3.禁止横屏:"cordova-plugin-screen-orientation": "^3.0.1"
4.app最小化:"cordova-plugin-appminimize": "^1.0.0"
5.微信:"cordova-plugin-wechat": "^2.1.0" // wechatId:wx23af94efcfef7261
安装方法:cordova-plugin-wechat --variable wechatappid=YOUR_WECHAT_APPID
6.支付宝:cordova-plugin-alipay // alipayId:2017111309912008
安装方法:cordova plugin add https://github.com/ejiyuan/cordova-plugin-alipay.git --variable APP_ID=[your AppId] --variable SANDBOX_MODE=[true]
7.当前位置:"cordova-plugin-geolocation": "^2.4.3"
8.地图导航:"cordova-plugin-mapnavigator": "^1.0.5"
9.极光推送:"jpush-phonegap-plugin": "^3.1.0"
10.app版本:cordova-plugin-app-version
11.检测网络:"cordova-plugin-network-information": "^1.3.4"
12.复制粘贴:"cordova-clipboard": "^1.1.1"
13.扫二维码:cordova plugin add gizscanqrcode
14.修改app名字:cordova-plugin-app-name //ionic1上需要安装, 安装方法:cordova plugin add cordova-plugin-app-name --variable APP_NAME= XXX
九、其他
1.解决点击延迟问题:添加tappable属性
2.Xcode 调用百度地图的设置
在LSApplicationQueriesSchemes中添加两个item: baidumap 和 iosamap
3.添加popover
1)添加新页面 可用ionic g page name,去掉module.ts
2)在app.module中定义popover
3)在ts中引用
4.关于Android中键盘弹起顶起页面的问题
1.在config.xml中添加
<preference name="android-windowSoftInputMode" value="adjustPan" />
2.在platforms的AndroidManifest.xml中找到windowSoftInputMode,将其值改为adjustPan
5.常用指令
1)*ngIf=‘true or false’
2)*ngFor='let a of arr'
3)(click)='todo()'
Privacy - Photo Library Additions Usage Description value:应用需要保存图片