zoukankan      html  css  js  c++  java
  • Ionic2 调用Custom Cordova Plugin方法

    APP升级到Ionic2之后,如何调用自己写的pulgin,一直测试不成功,现记录这一经过。

    plugin目前可以分为3类,A类是ionic-native自带的,可以直接导入Typescript类,直接使用,比较简单易用,目前插件大部分是这一类。

    B类是纯js库类,具体的使用方法可以参考这个官方文档,目前还没有遇见这种情况,等遇见了再来记录。

    C类是我们自己写的cordova plugin,一般都是用在Ionic1版本中的,问题由此产生,在ionic2中是如何应用的呢?

    方法步骤:

    1.和ionic1的方法一样,我们使用之前所开发的插件,将自己写的plugin加载到我们的ionic2项目中来,还是安装在plugins目录下,没有变。

    2.在要使用的ts类中,调用插件方法即可

    1   upgradeApp()
    2   {
    3          let url ="yourUrl";
    4         (<any>window).plugins.appUpgrade.downLoad(url,(success) => { console.log(success); },(err) => { } );
    5   }

    3.打包apk,安装测试,成功调用接口并下载下来apk.

    测试过不成功的两种方法如下

    声明cordoval变量:

     1 import { Component } from '@angular/core';
     2 import { NavController,AlertController,LoadingController } from 'ionic-angular';
     3 import { LoginPage } from '../login/login';
     4 import { CommonService } from '../../providers/baseService/CommonService';
     5 import { AppVersion } from 'ionic-native';
     6 
     7 declare var cordova:any;
     8 
     9 @Component(
    10 {
    11   selector: 'page-about',
    12   templateUrl: 'about.html'
    13 })

    方法中调用

     1   upgradeApp()
     2   {
     3           let url ="yourUrl";
     4           if (typeof cordova !== 'undefined')
     5           {
     6                   cordova.plugins.appUpgrade.downLoad(url,(success) => { console.log(success); },(err) => { } );
     7           }
     8           else
     9           {
    10                 //do nothing
    11           }
    12   }  

    可以成功打包生成apk,但是接口没有反应,无法下载url对应的apk.

    第二种不成功的方法大同小异,只是将声明的变量改为自己的插件名appUpgrade.

     1 import { Component } from '@angular/core';
     2 import { NavController,AlertController,LoadingController } from 'ionic-angular';
     3 import { LoginPage } from '../login/login';
     4 import { CommonService } from '../../providers/baseService/CommonService';
     5 import { AppVersion } from 'ionic-native';
     6  declare var appUpgrade:any;
     7 @Component(
     8 {
     9   selector: 'page-about',
    10   templateUrl: 'about.html'
    11 })
    1   upgradeApp()
    2   {
    3           let url ="yourUrl";
    4           appUpgrade.downLoad(url,(success) => { console.log(success); },(err) => { } );
    5   }

    仍旧是不成功的.

    这两种方法不成功的原因具体不是很清楚,怀疑命名空间不正确造成的。

    参考文章:

    1.ionic2 如何使用自定义插件

    2.Using Cordova Plugins in Ionic 2 with Ionic Native

    3.Ionic and Typings

  • 相关阅读:
    tomcat启动与关闭脚本
    SqlAlchemy ORM
    python之socket
    python异常处理
    python常用模块
    PYTHON之文件操作
    Linux系统Load average负载详细解释
    tomcat报错:This is very likely to create a memory leak问题解决
    springcloud第一步:创建eureka注册服务
    SpringCloud微服务高级
  • 原文地址:https://www.cnblogs.com/crazyguo/p/6405462.html
Copyright © 2011-2022 走看看