标签: ionic4

Ionic 4 Angular - 如何自我解雇模态

在Ionic 3中,解雇模态非常简单:

constructor(viewCtrl: ViewController) {
    this.viewCtrl.dismiss()
}
Run Code Online (Sandbox Code Playgroud)

在Ionic 4中,我无法导入ViewController(或者说准确,我的IDE尝试导入一种ViewController).

我想知道解雇模态的新方法是什么.

ionic-framework angular ionic4

9
推荐指数
3
解决办法
8853
查看次数

Ionic 4 透明透明标头

我有一个 Ionic 4 应用程序,我想要一个透明的标题。Ionic 文档指出必须将“全屏”添加到离子内容中,并且必须将“半透明”添加到离子工具栏。

这不起作用,并且始终将工具栏留在顶部。我也将其添加到 css 中:

ion-toolbar {
   --background: transparent;
   --ion-color-base: transparent !important;
}

<ion-header>
  <ion-toolbar translucent >
    <ion-buttons slot="start"  (click)="goBack()">
        <ion-icon name="arrow-back"></ion-icon>
    </ion-buttons>
  </ion-toolbar>
</ion-header>

<ion-content fullscreen >
</ion-content>
Run Code Online (Sandbox Code Playgroud)

我能找到的实现透明标题效果的唯一方法是当我转到 chrome 中的 Shadow DOM 并向类“inner-scroll”添加背景属性时

但是,此类中没有与背景颜色相关的变量,因此我无法使用此方法更改背景。

我怎样才能让这个透明的标题/工具栏工作!?

解决方案:

对于遇到此问题的其他任何人 - 文档根本不清楚。要获得完全透明的功能标头:

<ion-header>
  <ion-toolbar translucent>
    <ion-back-button></ion-back-button>
  </ion-toolbar>
</ion-header>

<ion-content fullscreen> </ion-content>
Run Code Online (Sandbox Code Playgroud)

没有在css中添加以下内容:

ion-toolbar {
--ion-toolbar-background-color: transparent;
--ion-toolbar-text-color: white;
}
Run Code Online (Sandbox Code Playgroud)

该文档仅指定了 HTML 方面的内容,但是对于 Ionic 中的新 Shadow DOM,必须使用变量来更改大多数 Ionic 组件样式。

ionic-framework angular ionic4

9
推荐指数
3
解决办法
2万
查看次数

如何使用角度 7 覆盖 ionic 4 中的 ion-back-button 动作

当用户点击ion-back-button时,我想停止从一个页面导航到另一个页面。我有一些验证/检查要执行,具体取决于哪个应用程序将决定是否允许后退操作。

ionic-framework angular ionic4 angular7

9
推荐指数
2
解决办法
5995
查看次数

如何使用 Ionic 4 项目将 angular 版本更新为 8

我刚刚设置了 Ionic 4 项目,并且有 Angular 7 版本,但我想将 Angular 7 版本更新为 8,我正在运行以下 cmd 但显示错误。

我正在运行的命令:

ng 更新 @angular/cli @angular/core

npm install --save-dev @angular-devkit/build-angular

即将出现的错误:

无法从“/home/Projects/myProjectName”找到模块“@angular-devkit/build-angular”。错误:无法从“/home/Projects/myProjectName”中找到模块“@angular-devkit/build-angular”。

任何帮助深表感谢。

ionic-framework angular ionic4

9
推荐指数
1
解决办法
6959
查看次数

Ionic 4:使用环境配置选项运行 Livereload 的问题

在模拟器或设备上运行我的 Ionic 4 应用程序时,我似乎在使用配置标志和 livereload 标志时遇到问题。我根据此处的文档设置我的环境:https : //ionicframework.com/docs/cli/commands/cordova-run

和这里:

https://ionicframework.com/docs/appflow/quickstart/environment

此 cli 命令将正确设置环境:

ionic cordova emulate android --configuration=qa
Run Code Online (Sandbox Code Playgroud)

这将正确运行 livereload:

ionic cordova emulate android --livereload
Run Code Online (Sandbox Code Playgroud)

但是当我尝试组合标志时:

ionic cordova emulate android --livereload --configuration=qa
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:数据路径“”不应该有额外的属性(浏览器目标)。

如果有帮助,这是我的离子信息,任何见解将不胜感激:

Ionic:

   Ionic CLI                     : 5.4.2
   Ionic Framework               : @ionic/angular 4.11.0
   @angular-devkit/build-angular : 0.801.3
   @angular-devkit/schematics    : 8.1.3
   @angular/cli                  : 8.1.3
   @ionic/angular-toolkit        : 2.0.0

Cordova:

   Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
   Cordova Platforms : android 8.1.0, ios 5.0.1
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.2, (and 20 other …
Run Code Online (Sandbox Code Playgroud)

angular ionic4

9
推荐指数
1
解决办法
241
查看次数

将 Cordova 迁移到 Capacitor - 错误:包 android.support.v4.content 不存在

我正在尝试将我的离子应用程序从科尔多瓦迁移到电容器。

但是我在 Android 构建中遇到错误。

android\capacitor-cordova-android-plugins\src\main\java\nl\xservices\plugins\FileProvider.java:4: error: package android.support.v4.content does not exist
public class FileProvider extends android.support.v4.content.FileProvider {
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

android cordova cordova-plugins ionic4 capacitor

9
推荐指数
1
解决办法
6679
查看次数

Ionic 4导航到选项卡

我正在做一个Ionic 4项目,我已经生成了一个tabs项目。

我要做的是创建一个登录页面,这是默认页面。

用户成功登录后,我想导航至选项卡。

当我尝试执行此操作时,出现错误:

Error: Cannot match any routes. URL Segment: 'tabs'
Run Code Online (Sandbox Code Playgroud)

这些是我的路线:

const routes: Routes = [
  { path: '', loadChildren: './login/login.module#LoginPageModule' },
  { path: 'Login', loadChildren: './login/login.module#LoginPageModule' },
  { path: 'tabs', loadChildren: './tabs/tabs.module#TabsPageModule' },
];
Run Code Online (Sandbox Code Playgroud)

在我的登录页面中,我有一个按钮,如下所示:

<ion-button expand="block" [href]="'tabs'" color="light" fill="outline">Sign in</ion-button>
Run Code Online (Sandbox Code Playgroud)

当我生成其他页面时,我可以使用相同的方式导航到该页面。

ionic-tabs ionic4

8
推荐指数
1
解决办法
3308
查看次数

工具栏中的Ionic 4 ion-title不在android上居中

我想知道这是否是常见问题。我ion-title不在Android工具栏中。

我用谷歌搜索,但找不到离子4的任何东西,我发现是离子3的很好的解决方案。

在这里是:https : //stackoverflow.com/a/30021395/4983589

我想知道是否有人在ionic4中做到这一点?

这是一张在android上的图片:

在此处输入图片说明

ionic-framework ionic4

8
推荐指数
1
解决办法
3609
查看次数

从其组件中消除Ionic 4 Popover

我有一个标准的Ionic 4页面(主页),该页面创建一个使用组件(BusinessDetails)和一个按钮的弹出窗口,该按钮重定向到新页面(RequestTurn)。但是,当我单击该按钮时,弹出窗口不会消失,而是呈现在我的RequestTurn页面顶部。我想我需要从组件(BusinessDetails)中手动关闭它,但是我不知道如何从那里访问弹出窗口的实例,因为它是在主页中创建的。有没有办法做到这一点?

home.page.ts

presentModal(business:Business, event: Event) {
this.popoverController.create(({
    component: BusinessDetailsComponent,
    cssClass: "business-popover",
    showBackdrop: true,
    componentProps: {
        business: business
    }
}) as any).then(popover => popover.present()); }
Run Code Online (Sandbox Code Playgroud)

business-detail.component.ts

goToRequestTurn(id: string) {
   //Need to dismiss popver here (?)
   this.router.navigateByUrl(`/request-turn/${id}`); }
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

popover ionic4

8
推荐指数
1
解决办法
3193
查看次数

我的硬件“后退按钮操作”在Ionic 4中不起作用

我正在使用Ionic 4应用程序,当用户在移动后退按钮上单击2次时,它应关闭该应用程序,但这没有发生。

这是我的app.component.ts

lastTimeBackPress = 0;
timePeriodToExit = 2000;
@ViewChildren(IonRouterOutlet) routerOutlets: QueryList<IonRouterOutlet>;

constructor(){
this.backButtonEvent();
}

backButtonEvent() {
    document.addEventListener("backbutton", () => { 
      this.routerOutlets.forEach((outlet: IonRouterOutlet) => {
        if (outlet && outlet.canGoBack()) {
            outlet.pop();
        } else if (this.router.url === '/tabs/tab1') {
          if (new Date().getTime() - this.lastTimeBackPress < this.timePeriodToExit) {
            navigator['app'].exitApp(); //Exit from app
            } else {
            this.presentAlertConfirm();
            this.lastTimeBackPress = new Date().getTime();
          }
          // navigator['app'].exitApp(); // work for ionic 4
        }
      });
    });
  }

  async presentAlertConfirm() {
    const alert = await this.alertController.create({ …
Run Code Online (Sandbox Code Playgroud)

ionic-framework angular ionic4

8
推荐指数
4
解决办法
5074
查看次数