离子/角动态组件导入

时间:2019-02-20 05:38:30

标签: angular ionic3

我有一个离子应用程序,我想同时在浏览器和移动设备上运行。我正在尝试添加一些条件以仅导入本机组件(如果我们是移动设备或移动设备的最佳方式)。

import { Component } from "@angular/core";
import { IonicPage, NavController, NavParams } from "ionic-angular";
import { AppVersion } from "@ionic-native/app-version";
@IonicPage()
@Component({ selector: "page-more", templateUrl: "more.html" })
export class MorePage {
  constructor(
    public navCtrl: NavController,
    public navParams: NavParams,
    private appVersion: AppVersion;
  ) {
    this.appVersion.getVersionNumber().then(ver => {
      this.appVerStr = ver;
    });

  }

在上面的示例中,我只想在移动设备上导入AppVersion,因为它不适用于浏览器,我会收到cordova_not_found错误

2 个答案:

答案 0 :(得分:1)

否,很遗憾,您不能有条件地导入库..您可以执行以下操作:导入库,同时将其注入构造函数和基于平台(this.platform.is('browser')或在您的情况下创建一个函数,{ {1}}),您可以编写代码。

不用担心内存的使用。.angulartreeshaker会自动为您删除未使用的代码:)

更新:

this.platform.is('android')

答案 1 :(得分:-1)

Cordova仅在设备上执行,而不在浏览器中执行。在浏览器中查看生成时避免错误的方法是将Cordova命令包装在平台if语句中。例如:

<r1 c1=\"01\" c168=\"<A_ATTR><Updates A_VALUE="959" /><Current A_VALUE="100" /></A_ATTR>\"/> 

<r1 c1=\"01\" c168=\"&lt;A_ATTR&gt;&lt;Updates A_VALUE=&quot;959&quot; /&gt;&lt;Current A_VALUE=&quot;100&quot; /&gt;&lt;/A_ATTR&gt;\"/>