• 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

  • 相关阅读:
    List of 3rd Party .NET UI & Reporting Components
    cannot open window service on computer '.' in window application
    CentOS7重新生成 /boot/grub2/grub.cfg
    vmware esxi 查看网卡、Raid卡驱动
    libcmt.lib和msvcrt.lib冲突,原因和解决方法
    C/C++注释规范
    lsof命令查看端口关联的文件
    linux下查看磁盘分区的文件系统格式
    编译linux kernel及制作initrd ( by quqi99 )
    三种虚拟化技术比较
  • 原文地址:https://www.cnblogs.com/crazyguo/p/6405462.html
Copyright © 2020-2023  润新知