在 Ionic 2 中使用第三方 cordova 插件和 TypeScript

Posted

技术标签:

【中文标题】在 Ionic 2 中使用第三方 cordova 插件和 TypeScript【英文标题】:Using a third-party cordova plugin in Ionic 2 with TypeScript 【发布时间】:2016-10-22 20:53:58 【问题描述】:

在我的 Ionic 2 应用程序 (TypeScript) 中,我使用插件,例如来自 ionic-native 的相机插件,它工作正常。现在我想使用BackgroundMode pluginhttps://github.com/katzer/cordova-plugin-background-mode。 我阅读了 README,按照说明进行了安装。

在用法下它说插件可以这样使用:

cordova.plugins.backgroundMode.enable();

在我的 IDE (Atom) 中,当我输入它时,它说找不到cordova。

我在 Google 上搜索了很多关于 cordova 插件和 Ionic 2 的信息,在某些情况下他们使用 navigator.somePlugin.someFunction()(如果我理解正确,则为 window.navigator 对象)但这对我也不起作用。我在我的应用程序中做了一个console.log,chrome 设备检查器显示了这个:

JSON.stringify(window.navigator, null, 2)

  "app": ,
  "camera": 
    "DestinationType": 
      "DATA_URL": 0,
      "FILE_URI": 1,
      "NATIVE_URI": 2
    ,
    "EncodingType": 
      "JPEG": 0,
      "PNG": 1
    ,
    "MediaType": 
      "PICTURE": 0,
      "VIDEO": 1,
      "ALLMEDIA": 2
    ,
    "PictureSourceType": 
      "PHOTOLIBRARY": 0,
      "CAMERA": 1,
      "SAVEDPHOTOALBUM": 2
    ,
    "PopoverArrowDirection": 
      "ARROW_UP": 1,
      "ARROW_DOWN": 2,
      "ARROW_LEFT": 4,
      "ARROW_RIGHT": 8,
      "ARROW_ANY": 15
    ,
    "Direction": 
      "BACK": 0,
      "FRONT": 1
    
  ,
  "splashscreen": 

我的问题是:

如何在 ionic 2 TS 中使用 BackgroundMode 插件?我什至不知道如何将它包含到我的项目中......

【问题讨论】:

【参考方案1】:

就像AGrandt 说here,你可以安装它:

ionic plugin add cordova-plugin-background-mode

然后在导入之后包含这一行:

declare var cordova:any;

并在平台准备好时使用它:

platform.ready().then(
    () => 
        console.log("MyApp::constructor platform.ready");
        cordova.plugins.backgroundMode.setDefaults( 
            title: 'My App Name', 
            text: 'Active in background...');
        cordova.plugins.backgroundMode.enable();
    
);

【讨论】:

你能解释更多吗?应该去哪里“declare var cordova:any”???我不明白,下一个代码“platform.ready().....”也没有提前谢谢!

以上是关于在 Ionic 2 中使用第三方 cordova 插件和 TypeScript的主要内容,如果未能解决你的问题,请参考以下文章

ionic/cordova即时通讯解决方案(上)

如何使用 Cordova/Ionic 将图像裁剪为特定纵横比?

Ionic 2:Cordova 不可用。确保包含 cordova.js 或在设备/模拟器中运行(在模拟器中运行)

在cordova/ionic 2应用程序中使用哪个数据库才能完全多平台?

每次使用 google auth、Cordova + ionic 2 都提示同意

位于 ionic 2 cordova 中的 sqlite 数据库文件在哪里