如何将ionic-native导入Ionic1 / AngularJS项目?

时间:2019-12-09 12:27:35

标签: angularjs cordova ionic-native ionic-v1

我正在使用Ionic v1和AngularJS和Cordova进行项目。

我正在尝试将这个Firebase插件包含在我的项目中,到目前为止还算运气:https://github.com/dpa99c/cordova-plugin-firebasex

有人告诉我要尝试以下节点模块:https://github.com/ionic-team/ionic-native#angularjs

但是,我不断收到此错误:

  

错误:[$ injector:nomod]模块'ionic.native'不可用!您可能拼错了模块名称,或者忘记了加载它。如果要注册模块,请确保将依赖项指定为第二个参数。

<script src="../node_modules/@ionic-native/core/ionic-native-plugin.js"></script>

如何在我的项目中完成这项工作,以及如何正确导入离子本原?

2 个答案:

答案 0 :(得分:0)

ionic-native停止了对离子离子v1 /​​ angular 1的支持,

https://github.com/ionic-team/ionic-native/tree/v3.x

要获得Ionic V1 / Angular 1支持,请使用Ionic Native的版本2。有关用法信息,请参见2.x自述文件。

答案 1 :(得分:0)

实际上,我在我的angularJS项目中使用了ionic-native 5.23.0,我相信所有5.x版本都支持该角度版本。如果查看ionic-native / core,您会发现存在一个名为ng1的文件。该文件具有一个名为initAngular1的函数,该函数遍历对象的属性以创建angularJS服务。这就是我所做的。

  1. 首先,我在webpack.config中打开用作入口点的脚本来创建捆绑包(因为我已经安装了webpack,所以我使用了)
  2. 在此脚本中,我编写了以下内容:
require('@ionic-native/core');
const appVersion = require('@ionic-native/app-version');
const sqlite = require('@ionic-native/sqlite');
const statusbar = require('@ionic-native/status-bar');
const toast = require('@ionic-native/toast');
const ng1 = require('@ionic-native/core/ng1')

ng1.initAngular1({ 
    AppVersion: appVersion.AppVersion,
    SQLite: sqlite.SQLite,
    Statusbar: statusbar.StatusBar,
    Toast: toast.Toast
});
  1. 运行webpack
  2. 在应用程序中注入ionic.native模块。
  3. 注入任何您想要使用的带有$ cordova前缀的插件。
angular.module('myApp', ['ionic.native'])
  .controller('MyPageController', function($cordovaToast) {
    $cordovaToast.show('Hello from Ionic Native', '5000', 'center');
  });

别忘了安装ionic-native插件使用的cordova插件。