离子移动应用程序在开发中工作正常,但在生产中却无法正常工作

时间:2018-10-16 22:32:35

标签: angular ionic-framework

我正在开发我的第一个离子应用程序。我已经完成了,当我做完它就完美了

ionic serve --open

或者当我在移动设备上的Ionic DevApp上打开它时。

当我创建.apk时,几乎所有功能都可以正常工作。但这不是:

<ion-tab [root]="tab1Root" [enabled]="  _tabs.textToEnableTabs !='AddListPage' " tabTitle="Pending Tasks" tabIcon="home"></ion-tab>
<ion-tab [root]="tab2Root" [enabled]="  _tabs.textToEnableTabs !='AddListPage' " tabTitle="Finished Tasks" tabIcon="information-circle"></ion-tab>
<ion-tab [root]="tab3Root" [enabled]="  _tabs.textToEnableTabs !='AddListPage' " tabTitle="Contact Author" tabIcon="contacts">      </ion-tab>

此代码检查我们是否在某个组件上,因此,如果我们在该组件上,则使选项卡不可单击。

正如我所说,此功能可完美地在开发中使用,而不适用于始终可单击选项卡的生产环境。因此[enabled]标记或条件无法正常工作。我不知道。

可能是哪个问题?

如果有帮助,我可以在其中创建该属性的服务ShowTabsService

//ShowTabsService.ts

textToEnableTabs

然后在构造函数上初始化:

"ShowTabsService.ts constructor

constructor()
{
    this.textToEnableTabs=""; /*value will change on the addList.ts constructor and on its onDestroy, to make tabs available again*/
}

当我在AddListPage的构造函数中时,选项卡不可单击,我这样做:

//AddListPage.ts

constructor(
    private _viewController:ViewController,
    private _tabs:ShowTabsService) {

       this._tabs.textToEnableTabs=this._viewController.name; //this will be 'AddListPage' when we are on that component

}

在ngOnInit上,当我们离开该组件时,通过执行以下操作使选项卡再次可单击:

//AddListPage.ts

ngOnDestroy()
{
    this._tabs.textToEnableTabs="";
}

也许这不是最好的方法(我对Angular和Ionic都是陌生的),但正如我所说,这对开发有效。当我安装签名的APK时不可以

1 个答案:

答案 0 :(得分:0)

有人向我建议了解决方法here

问题在于代码的这一部分:

<ion-tab [root]="tab1Root" [enabled]="  _tabs.textToEnableTabs !='AddListPage' " tabTitle="Pending Tasks" tabIcon="home"></ion-tab>

我一直依靠类名,当您在生产环境中构建应用程序时,这些名称将被最小化,这就是为什么我的代码在开发模式下可以正常工作,而在生产环境中则无法工作的原因。

我建议在离子论坛上阅读this thread