混合APP开发基础——以ionic为例

本文介绍了一个在Ionic 3应用中常见的错误——刷新时报readECONNRESET错误的解决方案,包括删除并重新安装特定模块的过程,同时分享了关于自定义样式及REST服务提供商组件的配置方法。

报错内容
ionic3 一刷新就报此错误

events.js:136
throw er; // Unhandled 'error' event
^

Error: read ECONNRESET
at _errnoException (util.js:999:13)
at TCP.onread (net.js:629:25)

解决方案
删除node_module文件中的ws文件
然后重新安装

npm install ws@3.3.2

快速生成页面命令——ionic generate(简写成ionic g)

APP 文件夹包含了全局所有组件的定义

引入全局自定义样式
variables.scss文件夹中,增加一行代码

//导入自定义样式
@import "light";   //light 文件名

引入单一页面的样式
在自身文件的scss文件中加入

注意:全局样式对组件的影响

rest文件

创建
ionic g——provider——rest

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';

import { Observable } from 'rxjs/Rx'
import { Http, Response } from '@angular/http';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';

/*
  Generated class for the RestProvider provider.

  See https://angular.io/guide/dependency-injection for more info on providers
  and Angular DI.
*/
@Injectable()
export class RestProvider {

  constructor(public http: HttpClient) {
    // console.log('Hello RestProvider Provider');
  }


  /**
   * 全局获取HTTP请求的方法
   * 
   * @private
   * @param {(Response | any)} error 
   * @returns 
   * @memberof RestProvider
   */
  private getUrlReturn(url: string): Observable<string[]> {
    return this.http.get(url)
      .map(this.extractData)
      .catch(this.handleError)
  }

  private extractData(res: Response) {
    let body = res.json();
    return JSON.parse(body) || {};
  }

  private handleError(error: Response | any) {
    let errMsg: string;
    if (error instanceof Response) {
      const body = error.json() || '';
      const err = body.error || JSON.stringify(body);
      errMsg = `${error.status} - ${error.statusText || ''} ${err}`
    } else {
      errMsg = error.message ? error.message : error.toString()
    }
    console.error(errMsg);
    return Observable.throw(errMsg);


  }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值