Ionic2 / Ionic3如何包含非本机插件,然后调用js文件使用ts文件中的插件函数

时间:2018-01-15 09:01:39

标签: javascript angularjs typescript ionic-framework ionic2

我是ionic2的tiro。我的项目是关于使用蓝牙连接一些设备。我使用非原生连接蓝牙插件来处理我的工作,但插件仅用于ionic1,我想在ionic3上使用。

  1. 第一个问题是:是否可以在ionic3上使用ionic1插件?
  2. 插件上有两个js文件(a.jsb.js),我检查了plugin.xml js模块的clobbers目标是window.a和{{1正在调用b.js

    以下示例a.js代码

    plugin.xml

    ... <js-module src="www/a.js" name="A"> <clobbers target="window.a" /> </js-module> ... 文件代码:

    a.js

    所以我只需要在我的主页cordova.define("cordova-data.a", function(require, exports, module) { "use strict"; ... module.exports = { isCorrect: function (success, fail){ cordova.exec(success, fail, 'aPlugin', 'isCorrect', []); } } ... } )中包含b.js文件。

    这里是home.ts文件的代码:

    b.js

    这是我var a = angular.module('a', []).factory('$a', ['$q', '$timeout', function($q, $timeout){ var error = { error: "failed", message: "failed to get data" } ... var isCorrect = function() { var q = $q.defer(); if (window.a === undefined) { q.reject(error); } else { window.a.isCorrect( function(ob) { q.notify(ob); }, function(ob) { q.reject(ob); } ); } return q.promise; } ... return { isCorrect: isCorrect }; }]); 文件中的代码:

    home.ts

    这是我的index.html文件中的代码:

    import { Component } from '@angular/core';
    import { NavController } from 'ionic-angular';
    declare var a: any;
    
    @Component({
      selector: 'page-home',
      templateUrl: 'home.html'
    })
    
    constructor(
          public navCtrl: NavController,
    ) {
          console.log(a);
    }
    

    当我在浏览器上运行它时,它会像这样返回Object:

    <!DOCTYPE html>
    <html lang="en" dir="ltr">
    <head>
        ...
        <script src="assets/js/a.js"></script>
        ...
    </head>
    <body>
    
    1. 第二个问题是如何在angular.module函数中调用isCorrect函数?或者以任何方式调用{_invokeQueue: Array(1), _configBlocks: Array(0), _runBlocks: Array(0), requires: Array(0), name: "a", …}
    2. 的isCorrect函数

      抱歉我的英语不好。

0 个答案:

没有答案