ionic 开发开发的几个小坑

没有更多推荐了,
不良信息举报
举报内容:
ionic开发常见问题及解决方案(三)
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有更多推荐了,
不良信息举报
举报内容:
ionic开发篇之踩坑集
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!Ionic2 开发总结 - 简书
Ionic2 开发总结
痛点在于开发环境吧,base app的下载和gradle编译都需要较好的外网环境
npm install -g cordova ionic
ionic start myApp --v2 --skip-npm,这一步是从git上拉取项目模板,内网环境下是无法下下来的, --v2是下载ionic2版本, --skip-npm是因为下完模板后ionic会自动npm install,跳过这部然后自己手动用cnpm下载
ionic serve -lc,ionic提供的浏览器调试,一开始一直不成功。多次新建项目下载重试后,成功...还是网络不稳定导致的吧,-lc是ionic lab,该页面可以同时调试在Android、IOS和WP设备上的样式;
ionic platform add android,添加android平台下的项目结构,在platforms文件夹下。
ionic build android, ionic run android -lc,编译和在真机上运行,-lc类似serve下的-lc,可以实时在真机上调试;
gradle 配置
ionic build android是通过gradle编译,而且会在线下载gradle,墙内基本是下不了的,这就需要手动下载项目需要的gradle版本。 查看android platform下的build.gradle文件,看当前版本需要的gradle version。 下载成功后,放在myApp\platforms\android\gradle文件夹下, 命令行输入set CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=../gradle-2.14.1-all.zip
maven下载失败问题。替换为阿里云镜像:
打开项目\platforms\android\build.gradle修改:
repositories {
//mavenCentral() // 注释掉
dirs 'libs'
url "http://maven.aliyun.com/nexus/content/groups/public"
Ionic2 使用
Ionic2添加页面模板
ionic g page xxx
引入 import {NavController} from 'ionic-angular'
在类中通过push和pop方法跳转或返回上个页面:
this.navCtrl.push(demoPage);
this.navCtrl.pop()
页面间的参数传递
引入import {NavParams} from 'ionic-angular'
跳转时传入参数: this.navCtrl.push(demoPage, {item: 'value'})
跳转后的页面通过get方法获取值: let temp = this.navParams.get('item')
select/radioGroup的默认选择问题
官方文档中给出的方法是在html中使用属性selected="true"/ checked="true";
目前来看该方法不起作用,查看issue,发现需通过ngModel绑定变量,设定变量的初始值。
&ion-searchbar (ionInput)="getItems($event)"&&/ion-searchbar&
&ion-list&
&ion-item *ngFor="let item of items"&
{{ item }}
&/ion-item&
&/ion-list&
@Component({
templateUrl: 'search/template.html',
class SearchPage {
searchQuery: string = '';
items: string[];
constructor() {
this.initializeItems();
initializeItems() {
this.items = [
'Amsterdam',
getItems(ev: any) {
// Reset items back to all of the items
this.initializeItems();
// set val to the value of the searchbar
let val = ev.target.
// if the value is an empty string don't filter the items
if (val && val.trim() != '') {
this.items = this.items.filter((item) =& {
return (item.toLowerCase().indexOf(val.toLowerCase()) & -1);
ionic2页面切换数据不刷新
在tabs模板下,切换页面,初始化的方法只会执行一次,但一些动态从服务器获取的数据是希望每次进入页面时都重新获取刷新的,这就需要对ionic的页面生命周期有一定了解,可以将数据请求刷新的方法放在ionViewWillEnter中。ionic2的生命周期如下:
ionViewDidLoad
页面加载完毕触发。该事件发生在页面被创建成 DOM 的时候,且仅仅执行一次。如果页面被缓存(Ionic默认是缓存的)就不会再次触发该事件。该事件中可以放置初始化页面的一些事件。
ionViewWillEnter
即将进入一个页面变成当前激活页面的时候执行的事件。
ionViewDidEnter
进入了一个页面且变成了当前的激活页面,该事件不管是第一次进入还是缓存后进入都将执行。
ionViewWillLeave
将要离开了该页面之后变成了不是当前激活页面的时候执行的事件。
ionViewDidLeave
在页面完成了离开该页面并变成了不是当前激活页面的时候执行的事件。
ionViewWillUnload
在页面销毁和页面中有元素移除之前执行的事件。
ionViewDidUnload
在页面销毁和页面中有元素移除之后执行的事件
阻止点击事件传递方法
(click)="do(); $event.stopPropagation()"
修改应用图标和启动画面
找到合适的图标文件,png格式
替换项目resources文件夹下的icon.png
项目路径下运行ionic resources命令,该命令为所有platform生成对应分辨率的图片
若想针对不同platform使用不同图标,图片复制到resources下对应platform文件夹下,再运行ionic resources
ionic resources对应的服务似乎不太稳定,也可以通过在线网站
修改应用名称
修改根目录下config.xml文件:
&widget id="com.ionframework.demo"&,id对应应用的包名
&name&&/name&对应应用名称,直接修改Android的values文件没有效果
解决Splash后出现短暂白屏问题
修改config.xml:
添加 &preference name="AutoHideSplashScreen" value="false"/&
注释掉 &preference name="SplashScreenDelay" value="3000"/&
关于crosswalk
crosswalk是针对安卓设备的一个webview插件,性能较好,目前ionic2的demo里不会自带crosswalk。官方的说法是它们发现只有在低于4.x.x的安卓系统上,ionic应用运行性能不稳定,而4.x.x的设备在Google的统计里,全球只有不到11%。
Angular2双向绑定
&ion-input type="text", [(ngModule)]="inputTN"&&/ion-input&
private inputTN;
let tn = this.inputTN;
需要先定义变量名。
Angular2依赖注入
在自定义了一个http服务类后,页面中引用方法报错,原因是没有给服务类添加注解@Injectable(),@Injectable()标志着一个类可以被一个注入器实例化;通常来讲,在试图实例化一个没有被标识为@Injectable()的类时候,注入器将会报告错误
Ionic2引入第三方js库
应用中想实现一个页面,进入时显示根据设备uuid生成的二维码,虽然barcodescanner可以实现生成二维码,但会打开一个Activity,这样体验不符合需求。于是想到引用第三方的js库,如qrcode.js等。
然而Ionic2使用typescript,ts中是无法直接调用js的。这里网上给出了两种方案。
引入js文件,通过declarations.d.ts文件声明引用变量。
通过types库下载qrcode。
方案2并没有成功,方案1的具体过程以qrcode为例,如下:
从github下在需要的js文件,jquery.min.js和qrcode.js
文件复制到项目'/src/assets/js'目录下,js目录是自己新建的
在index.html中引入:
&script src="assets/js/jquery.min.js"&&/script& &script src="assets/js/qrcode.min.js"&&/script&
在src目录下的declarations.d.ts中申明qrcode的方法变量:
declare var QRC
完成以上步骤后,就可以在ts中调用qrcode的方法,例如在页面上显示一个文本转换的二维码:
&div id="qrImage" class="qrcode-image"&&/div&
let qrImage = document.getElementById('qrImage'); new QRCode(qrImage, 'test');
获取设备分辨率
window.screen.width * window.devicePixelR window.screen.height * window.devicePixelR
隐藏滚动条
发现在部分设备上会显示滚动条,解决方法:修改app.sccs,添加如下代码:
::-webkit-scrollbar {
display: none !
ionic build android --prod --release, --prod是压缩模式,编译出来的app启动速度变快,减少splash时间
--release是签名打包,具体可见;
Ios有一特殊的地方,正常编译出来的都是.app文件,需要导入ITouch中生成ipa。后来发现,使用ionic run ios --prod安装到真机时,/ios/build/下会多出device目录,该目录下有现成ipa,省去iTouch这一步。
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
作者:snowdream微信:sn0wdr1am原文地址:https://github.com/snowdream/awesome-android awesome-android Introduction android libs from github System re...
文档包含以下内容: l 环境搭建 l 创建demo并调试运行 l 打包APK l 添加支持热更新 l 优化启动慢问题 l 常用命令 1.环境搭建 需要安装以下软件和插件(Android): l 安装nodeJS(自带npm) l 配置cnpm (使用淘宝镜像取代npm) l...
Ionic是一个基于Angular2的开发手机web app的框架,它包含了一整套手机端的样式组件,和一系列的功能服务组件。样式包括像按钮、表单、列表、header等都有提供。服务组件的话,包括tab、slider、侧边栏、模态窗口等也有很多,基本上能满足大部分手机web应...
11:59 那些年, 我们一起拥有青春, 曾经沸腾的热血, 映照得我们光芒万丈, 骄傲、盲从的双眼, 谁还看得见凋零的杨柳深处, 热泪流淌过的脸颊。 于是,蜂拥般的迈着昂扬的步伐, 可曾低头怜悯过, 那段逝去的青春…… 那些年, 我们一起拥有幸福, 曾经...
都说女儿是父母的小公主,可我从小到大都是灰姑娘。 小时候,爸爸嫌弃我是女孩,妈妈忙没时间管我,我一直都是短发,被告知要让着哥哥。。。。。。 小学,初中,学习都不是很好,哥哥成绩一直比我好,觉得自己像空气在家里存在,不,这里不是家,没有任何安全感,连哭都不敢。。。。。 高中学...
维铭父母90天践行打卡: 今日日期: 打卡开始日期: 第几期学员:16期 今天是打卡的第几日:9/90 孩子的名字、性别、年龄:刘?、男、31M&姜熳麒、男、12M 家庭成员:爸爸、妈妈、奶奶。 90天践行自己签字:刘建良 A. 今天是...
古人说:若登高必自卑,若涉远必自迩,我们想要让自己在人际复杂的社会立于不败之地,首先要做的就是放弃偏执与敌意,让心变得开放和柔软。 这种说法看似矛盾,但却是由沟通的性质所决定的:沟通是两从内向外的一种信息发放与接收,能否达到良好的沟通效果,首选取决于你的心愿和诚意。 一位公...
最近产品组接到项任务,公司想做新产品(互联网产品),需要对同行业进行调研,并写出可实施方案。方案可能会给到北京的CEO参考,作为互联网界人人知晓的大佬,有机会看到我的调研报告,想想也是相当鸡冻啊。评估该文档的需求和报告的对象,其实是要写一份商业需需求文档。 什么是商业需求文...我想进行Ionic的学习,它的开发环境是如何搭建的?我想边敲代码边学习。_百度知道
我想进行Ionic的学习,它的开发环境是如何搭建的?我想边敲代码边学习。
我有更好的答案
Ionic开发环境的搭建很简单,主要按三个步骤进行就可以了:1.进行Node.js的安装。到Node.js的官方网站,下载最新版本对应系统的安装文件;2.进行Git的安装。同理,可以到其官方网站,寻找相应安装文件;3.进行Ionic和Cordova的安装。它们的安装,需要在我们安装的Git Bash终端进行,只要运行终端命令:npm install -g cordova ionic
就可以自动安装了。 经过三个步骤,我们就可以搭建好Ionic的开发环境啦。其实,Ionic的安装,在其官方网站有相应资料的,不过都是英文。中文资料的话,秒秒学的Ionic还介绍的比较详细。Ionic是一个新的框架,中文介绍的资料还不多。希望答案对你有帮助
采纳率:34%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 ionic 开发环境搭建 的文章

 

随机推荐