代码之家  ›  专栏  ›  技术社区  ›  Gilbert lucas

如何让浏览器知道用户已经在-Ioinic中查看了特定页面

  •  0
  • Gilbert lucas  · 技术社区  · 6 年前

    嗨,我正在创建一个PWA。其中一个要求是创建一个简介滑块来教用户如何使用该应用程序,然后有一个按钮进入包含登录和注册选项卡的选项卡页。

    我只是想显示“简介”滑块 一旦

    爱奥尼亚有什么套餐吗??

    以下是源代码:

    简介.html

    <ion-content>
      <ion-slides #mySlider pager (ionSlideDidChange)="onSlideChange()" [class]="activeSlide">
        <ion-slide *ngFor="let slide of slides">
          <img [src]="slide.image">
          <div class="caption">
            <h2>{{slide.title}}</h2>
            <p>{{slide.description}}</p>
          </div>
          <div class="userNav" *ngIf="activeSlide == 'slideBG2'">
              <button ion-button   (click)="goToSignup() ">signup</button>
              <button ion-button   (click)="goToLogin() ">Login</button>
          </div>
    
        </ion-slide>
      </ion-slides>
      <button *ngIf="activeSlide !== 'slideBG2'" class="nextSlide" (click)="goToSlide()">Next</button>
    </ion-content>
    

    简介

    import { Component, ViewChild } from '@angular/core';
    import { IonicPage, NavController, NavParams, Slides } from 'ionic-angular';
    import { TabsPage } from '../tabs/tabs';
    import { SignupPage } from '../signup/signup';
    import { LoginPage } from '../login/login';
    
    
    @IonicPage()
    
    @Component({
      selector: 'page-intro',
      templateUrl: 'intro.html',
    })
    
    export class IntroPage {
      introSlides: any;
      splash = true;
    
    
      constructor(public navCtrl: NavController, public navParams: NavParams) {
    
      }
    
    @ViewChild('mySlider') slider: Slides;
      public currentindex
      public objectindex
      public activeSlide = 'slideBG0';
    
    
    slides = [
    {
      title: "Juce up your life",
      description: "lorem",
      image: "assets/imgs/intro/slides/slide1.png",
    },
    {
      title: "Anytime, anywhere",
      description: "lorem",
      image: "assets/imgs/intro/slides/slide2.png",
    },
    {
      title: "Get started",
      description: "lorem.",
      image: "assets/imgs/intro/slides/slide3.png",
    }
    ];
    
    
    public onSlideChange() {
      this.currentindex = this.slider.getActiveIndex();
      this.activeSlide = 'slideBG' + this.currentindex;
      // console.log(this.activeSlide);
    } 
    goToSlide() {
      let currentIndex = this.slider.getActiveIndex() + 1;
      this.slider.slideTo(currentIndex, 500);
    }
    
        goToLogin() {
      this.navCtrl.setRoot(TabsPage, {
        tabIndex: 1
      });
    }
    goToSignup()  {
      this.navCtrl.setRoot(TabsPage, {
        tabIndex: 0
      });
    }
    
      ionViewDidLoad() {
        // console.log(this.introSlides);
        setTimeout(() => {
          this.splash = false;
        }, 4000);
      }
    
    }
    

    标签.ts

    import { Component } from '@angular/core';
    import { NavController, NavParams } from 'ionic-angular';
    import { LoginPage } from '../login/login';
    import { SignupPage } from '../signup/signup';
    
    @Component({
      templateUrl: 'tabs.html'
    })
    export class TabsPage {
    
      tab1Root = SignupPage;
      tab2Root = LoginPage;
      seltabix: number;
    
    
      constructor(public navCtrl: NavController, public navParams: NavParams) {
    
        this.seltabix = this.navParams.get('tabIndex');
      }
    }
    

    制表符.html

    <ion-tabs tabsPlacement="top" [selectedIndex]="seltabix">
      <ion-tab [root]="tab1Root" tabTitle="Signup"></ion-tab>
      <ion-tab [root]="tab2Root" tabTitle="Login"></ion-tab>
    </ion-tabs>
    

    应用组件.ts

    export class MyApp {
      rootPage:any = IntroPage;
    
      constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
        platform.ready().then(() => {
          statusBar.styleDefault();
          splashScreen.hide();
        });
      }
    }
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   user7477255 user7477255    6 年前

    谢谢!我可以用

    import { IonicStorageModule } from '@ionic/storage';
    import { LoadingController } from 'ionic-angular';
    import { Storage } from '@ionic/storage';
    
    export class MyApp {
    
    
      rootPage: any = 'Tabs';
      loader: any;
    
      constructor(public platform: Platform, public loadingCtrl: LoadingController, public storage: Storage) {
    
    
    this.presentLoading();
    
    this.platform.ready().then(() => {
    
      this.storage.get('introShown').then((result) => {
    
        if(result){
          this.rootPage = 'Tabs';
        } else {
          this.rootPage = 'Intro';
          this.storage.set('introShown', true);
        }
    
        this.loader.dismiss();
    
      });
    
    });
    
    
      }
    
    
    
      presentLoading() {
    
    
    this.loader = this.loadingCtrl.create({
      content: "Authenticating..."
    });
    
    this.loader.present();
    
      }
    
    }
    
        2
  •  0
  •   Parvej Mallick    6 年前

    https://www.w3schools.com/jsref/prop_win_localstorage.asp

    前任。

    if(!localStorage.getItem("sliderShown")){
       //Show your Introslider
       localStorage.setItem("sliderShown", "true");
    }
    
    推荐文章