ionic常用api

设置沉浸式:

对于android来说 需要设置paddingtop,因为沉浸之后header的高度有一部分填充了手机导航栏,可以在global.scss中设置公共的header的样式

//app.component.ts
import { StatusBar } from '@ionic-native/status-bar/ngx';
//在方法中使用
this.statusBar.overlaysWebView(true);
退出app:
  exitApp(){
    this.platform.backButton.subscribe(()=>{
      // alert(JSON.stringify(this.router.url))
      if(this.router.url== '/'){  //判断是那个页退出
        navigator['app'].exitApp()
      }
    })
    //如果需要扩展 可以设置双击退出 这个自行扩展
  }
获取当前位置
//安装插件
ionic cordova plugin add cordova-plugin-geolocation
npm install @ionic-native/geolocation
//引用
import { Geolocation } from '@ionic-native/geolocation/ngx';
//使用
this.geolocation.getCurrentPosition().then((resp)=>{
    console.log(resp)
    let longitude = (resp.coords.longitude).toFixed(4);
    let latitude = (resp.coords.latitude).toFixed(4);
  }).catch(err=>{
    console.log(err) 
})
下拉刷新
//http://www.ionic.wang/components_doc-index-id-297.html 官网位置
//home.page.html
  
    
  
//home.page.ts
doRefresh(e){
  //可以将e赋值给一个全局变量 这样可以在请求的方法回调里加上结束刷新
  e.target.complete() //加上这句话证明刷新停止
}
上拉加载
//infinite.page.html

    
    

//inifnite.page.ts
//跟上拉加载一样 需要一个结束的命令
diInfinnte(e){
  e.target.complete()
}
图片压缩
  compress(img, width, height, ratio) {
    var canvas, ctx, img64;
    canvas = document.createElement('canvas');
    canvas.width = width;
    canvas.height = height;
    ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0, width, height);
    img64 = canvas.toDataURL("image/jpeg", ratio);
    return img64;
  }
选择图片
  pickImg(){
    const options: CameraOptions = {
      quality: 100,
      destinationType: this.camera.DestinationType.DATA_URL,
      encodingType: this.camera.EncodingType.JPEG,
      mediaType: this.camera.MediaType.PICTURE,
      sourceType: this.camera.PictureSourceType.CAMERA
    }
    this.camera.getPicture(options).then((imageData) => {
      var image = new Image();
      image.src = 'data:image/jpeg;base64,' + imageData;
      let this_ = this;
      image.onload = function(){
        var img64 = this_.compress(image, 800, 800, 0.7);
        let photoBase64 = img64.replace('data:image/jpeg;base64,', '');
        this_.uploadImg(photoBase64)
      }
    }, (err) => {
      // Handle error
    });
  }
app打开文件或者链接
//安装依赖
ionic cordova plugin add cordova-plugin-inappbrowser
npm install @ionic-native/in-app-browser

//使用
this.iab.create(url,"_system",{}) 
 //_system指的是打开手机系统的应用  _blank指打开app内部浏览器多用于打开一个网址
使用导航 打开手机自带地图
  • 判断手机是否安装
  • 打开手机自身应用
    let appAmap = "";
    let appBmap = "";
    if (this.platform.is("ios")) {
      appAmap = "iosamap://";
      appBmap = "baidumap://";
    } else if (this.platform.is("android")) {
      appAmap = "com.autonavi.minimap";
      appBmap = "com.baidu.BaiduMap";
    }

    this.appAvailability.check(appAmap).then(
      (yes: boolean) => {
        this.hasAmap = true;
      },
      (no: boolean) => {
        this.hasAmap = false;
      }
    );

    this.appAvailability.check(appBmap).then(
      (yes: boolean) => {
        this.hasBmap = true;
      },
      (no: boolean) => {
        this.hasBmap = false;
      }
    );

//打开高德地图
  openByAmap() {
    if (this.platform.is("ios")) {
      let urlAmap =
        "iosamap://viewMap?sourceApplication=applicationName&poiname=" +
        this.destinationName +
        "&lat=" +
        this.latGCJ2 +
        "&lon=" +
        this.lonGCJ2 +
        "&dev=1";
      this.iab.create(urlAmap, "_system", {});
    } else if (this.platform.is("android")) {
      let urlAmap =
        "androidamap://viewMap?sourceApplication=appname&poiname=" +
        this.destinationName +
        "&lat=" +
        this.latGCJ2 +
        "&lon=" +
        this.lonGCJ2 +
        "&dev=0";
      this.iab.create(urlAmap, "_system", {});
    }
  }

//打开百度地图
  openByBmap() {
    if (this.platform.is("ios")) {
      let urlBmap =
        '"baidumap://map/marker?location=' +
        this.latBD9 +
        "," +
        this.lonBD9 +
        "&title=" +
        this.destinationName +
        "&src=ios.baidu.openAPIdemo";
      this.iab.create(urlBmap, "_system", {});
    } else if (this.platform.is("android")) {
      let urlBmap =
        "baidumap://map/marker?location=" +
        this.latBD9 +
        "," +
        this.lonBD9 +
        "&title=" +
        this.destinationName +
        "&traffic=on&src=andr.baidu.openAPIdemo";
      this.iab.create(urlBmap, "_system", {});
    }
  }
手机预览pdf
//安装依赖
import { FileTransfer, FileTransferObject } from "@ionic-native/file-transfer/ngx";
import { File } from '@ionic-native/file/ngx';
import { FileOpener } from '@ionic-native/file-opener/ngx';

//使用
async lookView(url) {
  // this.iab.create(url,'_system',{})
  const fileTransfer: FileTransferObject = this.transfer.create();
  fileTransfer.download(url, this.file.dataDirectory + 'file.pdf').then((entry) => {
    this.fileOpener.open(this.file.dataDirectory + 'file.pdf', 'application/pdf')
      .then(() => console.log('File is opened'))
      .catch(e => console.log('Error opening file'));
  }, (error) => {
    // handle error
    console.log(JSON.stringify(error))
  });
}
生成秘钥 打包
//使用到了java-sdk的keytool jarsinger两个命令 
keytool -genkey -alias huanggang.keystore -keyalg RSA -validity 20000 -keystore huanggang.keystore

jarsigner -verbose -keystore huanggang.keystore -signedjar huanggang.apk platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk huanggang.keystore
readme.md

# 沈阳生成 keystore

keytool -genkey -alias huanggang.keystore -keyalg RSA -validity 20000 -keystore huanggang.keystore

# 打包沈阳安卓命令(秘钥)

jarsigner -verbose -keystore huanggang.keystore -signedjar huanggang.apk platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk huanggang.keystore

#安卓视频 build.gradle
ndk{
abiFilters "armeabi", "armeabi-v7a","x86","mips"
}

#ios info.plist
LSApplicationQueriesSchemes:[baidumap,iosamap]
NSPhotoLibraryUsageDescription: view previously-taken environment-protecting photos for uploading
NSPhotoLibraryAddUsageDescription: writing album
NSCameraUsageDescription: take photos of actions taken to protect environment
NSLocationWhenInUseUsageDescription: access bits during use

#引入第三方组件
ionic cordova plugin add cordova-plugin-appavailability
npm install --save @ionic-native/app-availability

ionic cordova plugin add cordova-plugin-inappbrowser
npm install --save @ionic-native/in-app-browser

ionic cordova plugin add cordova-plugin-camera
npm install --save @ionic-native/camera

ionic cordova plugin add cordova-plugin-file
npm install --save @ionic-native/file

ionic cordova plugin add cordova-plugin-filepath
npm install --save @ionic-native/file-path

ionic cordova plugin add cordova-plugin-file-transfer
npm install --save @ionic-native/file-transfer

ionic cordova plugin add com-sarriaroman-photoviewer
npm install --save @ionic-native/photo-viewer

ionic cordova plugin add cordova-plugin-splashscreen
npm install --save @ionic-native/splash-screen

ionic cordova plugin add cordova-plugin-statusbar
npm install --save @ionic-native/status-barx

ionic cordova plugin add cordova-plugin-geolocation
npm install --save @ionic-native/geolocation

ionic cordova plugin add com-sarriaroman-photoviewer
npm install --save @ionic-native/photo-viewer

cordova-hot-code-push-plugin

cordova plugin add cordova-disable-http-cache
npm i cordova-disable-http-cache

ionic cordova plugin add cordova-plugin-telerik-imagepicker --variable PHOTO_LIBRARY_USAGE_DESCRIPTION="your usage message"
npm install --save @ionic-native/image-picker@4

#热更新步骤
[1] cordova plugin add cordova-hot-code-push-plugin
npm install -g cordova-hot-code-push-cli
[2] config.xml 




[3] cordova-hcp build
现在 在项目文件下的 www 文件里面我们可以看到两个新增的文件,chcp.json 和 chcp.manifest。
{
"autogenerated": true,
"release": "2017.07.08-16.56.31",
"content_url": "http://prd9.hbjk.com.cn:90",
"update": "start"
}
[4] 添加安卓平台
cordova platform add android
[5] 备份 chcp.json
根目录下新建 cordova-hcp.json, 配置内容:
{
"autogenerated": true,
"release": "2017.07.08-16.56.31",
"name": "hea",(option)
"min_native_interface": 1(option)
"content_url": "http://192.168.1.203:8121", (+require)
"update": "now" (+require)
}

你可能感兴趣的:(ionic常用api)