ネイティブJSコードを使用してAngularでアイドル時間を実装するにはどうすればよいですか?

アチャウハン

アプリケーションでユーザーのアイドルタイムアウトを検出する必要があります。私のアプリケーションはネイティブJavaScriptとAngularの両方を使用しています。以下に実装したHTML + JavaScriptページで:

<script>
var inactivityTime = function () {
    var time;
    document.onmousemove = resetTimer;
    document.onkeypress = resetTimer;
    document.onclick = resetTimer;
    document.onwheel = resetTimer;

    function callApi() {
        alert("Idle for 3 seconds. You can call your api here");
    }

    function resetTimer() {
        clearTimeout(time);
        time = setTimeout(callApi, 3000); 
        // 5 minute = 60000 * 5;
        // 1000 milliseconds = 1 second
    }
};

window.onload = function() {
  inactivityTime(); 
}
</script>

期待どおりに機能しています。

私がAngularプロジェクトで使用しているのと同じですが、Angularコードも機能していますが、1つの小さな問題が観察されました。最初に私のAngularコードを参照してください。

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'project';
  time;

  ngOnInit() {  
    this.inactivityTime();  
    this.resetTimer();
  }

  inactivityTime() {
    document.onmousemove = this.resetTimer;
    document.onkeypress = this.resetTimer;
    document.onclick = this.resetTimer;
    document.onwheel = this.resetTimer;

  }

  resetTimer() {
    clearTimeout(this.time);
    this.time = setTimeout(() => {
      alert('Idle for 3 seconds. You can call your api here');
    }, 3000);
  }
}

私が直面している問題は、マウスの移動/キーを押してもページの読み込み時にアラートが呼び出されることです。その後、すべてが期待どおりに機能しています。しかし、ページの読み込み時には機能しません。

ここでヘルプをリクエストします。

ありがとうございました!

マレク・スクデルスキー

最善のアプローチは、Angular HostListenerデコレータを使用して、それをドキュメントにバインドすることです。

export class AppComponent {
  time: number;

  ngOnInit() {  
    this.resetTimer();
  }

  @HostListener('document:mousemove')
  @HostListener('document:keypress')
  @HostListener('document:click')
  @HostListener('document:wheel')
  resetTimer() {
    clearTimeout(this.time);
    this.time = setTimeout(() => {
      alert('Idle for 3 seconds. You can call your api here');
    }, 3000);
  }
}

これがstackblitzのソリューションです

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ネイティブJavaScriptを使用して無限スクロールを実装するにはどうすればよいですか?

分類Dev

ネイティブC ++のCOMを使用してC#のインターフェイスを実装するにはどうすればよいですか?

分類Dev

Mongo-Javaドライバーを使用してMongoDBネイティブクエリ(JSON)を実行するにはどうすればよいですか?

分類Dev

Android Studioを使用してネイティブコードでapkをコンパイルするときに、リンク時にlibgnustl_static.aを削除するにはどうすればよいですか?

分類Dev

新しいAPIを使用するようにNode.jsネイティブアドオンを更新するにはどうすればよいですか?

分類Dev

Android用のコードネーム1にネイティブアクセラレータの読み出しコードを実装するにはどうすればよいですか?

分類Dev

iOSで特定のViewControllerのアイドル時間/非アクティブ時間を検出するにはどうすればよいですか?

分類Dev

ビューモデルを使用してコードビハインド関数を実装するにはどうすればよいですか?

分類Dev

反応ネイティブでsvgイメージパスを使用してsvgアイコンを表示するにはどうすればよいですか?

分類Dev

固定アイテムを使用してMainActivityカードビューメニューを実装するにはどうすればよいですか?

分類Dev

コマンドラインを使用してテキストファイルの時間を合計するにはどうすればよいですか?

分類Dev

スライドトグル効果を使用してアコーディオンを実行するにはどうすればよいですか

分類Dev

ネイティブAndroidコードをLibGDXに追加するにはどうすればよいですか?

分類Dev

ネイティブAndroidコードをLibGDXに追加するにはどうすればよいですか?

分類Dev

NodeJSのMongoDBネイティブドライバーを介してdb.copyDatabaseを実行するにはどうすればよいですか?

分類Dev

反応ネイティブを使用してAndroidでCallKitと同様の動作を実装するにはどうすればよいですか?

分類Dev

Nodeモジュールを使用して電子アプリからアイドル時間を取得するにはどうすればよいですか?

分類Dev

SQLObjectを使用して接続ドロップイベントにコールバックを実装するにはどうすればよいですか?

分類Dev

Javaのネイティブコードを確認するにはどうすればよいですか?

分類Dev

ネイティブのcorertプレビューを使用してビルドするにはどうすればよいですか?

分類Dev

Springを使用したコンパイル時にプロパティファイルをロードするにはどうすればよいですか?

分類Dev

AVRのコンパイル時[ディスパッチ]テーブルを実装するにはどうすればよいですか?

分類Dev

ネイティブスクリプトを使用してAndroid8でMACアドレスを取得するにはどうすればよいですか?

分類Dev

Ionic 5 / Capacitor:アプリがブラウザーで実行されているのか、ネイティブアプリとしてコンパイルされているのかを確認するにはどうすればよいですか?

分類Dev

ビルド時にプロファイルを使用してプロパティファイルを生成する場合、EclipseでMaven Webアプリケーションを実行するにはどうすればよいですか?

分類Dev

Angular 5 CLIを使用してサードパーティのライブラリをロードするにはどうすればよいですか?

分類Dev

react jsを使用してカルーセルスライダーでカードアイテムを表示するにはどうすればよいですか?

分類Dev

httpダウンロードに非アクティブタイムアウトを実装するにはどうすればよいですか

分類Dev

iwコマンドを使用してWiFiネットワークをアクティブ化するにはどうすればよいですか?

Related 関連記事

  1. 1

    ネイティブJavaScriptを使用して無限スクロールを実装するにはどうすればよいですか?

  2. 2

    ネイティブC ++のCOMを使用してC#のインターフェイスを実装するにはどうすればよいですか?

  3. 3

    Mongo-Javaドライバーを使用してMongoDBネイティブクエリ(JSON)を実行するにはどうすればよいですか?

  4. 4

    Android Studioを使用してネイティブコードでapkをコンパイルするときに、リンク時にlibgnustl_static.aを削除するにはどうすればよいですか?

  5. 5

    新しいAPIを使用するようにNode.jsネイティブアドオンを更新するにはどうすればよいですか?

  6. 6

    Android用のコードネーム1にネイティブアクセラレータの読み出しコードを実装するにはどうすればよいですか?

  7. 7

    iOSで特定のViewControllerのアイドル時間/非アクティブ時間を検出するにはどうすればよいですか?

  8. 8

    ビューモデルを使用してコードビハインド関数を実装するにはどうすればよいですか?

  9. 9

    反応ネイティブでsvgイメージパスを使用してsvgアイコンを表示するにはどうすればよいですか?

  10. 10

    固定アイテムを使用してMainActivityカードビューメニューを実装するにはどうすればよいですか?

  11. 11

    コマンドラインを使用してテキストファイルの時間を合計するにはどうすればよいですか?

  12. 12

    スライドトグル効果を使用してアコーディオンを実行するにはどうすればよいですか

  13. 13

    ネイティブAndroidコードをLibGDXに追加するにはどうすればよいですか?

  14. 14

    ネイティブAndroidコードをLibGDXに追加するにはどうすればよいですか?

  15. 15

    NodeJSのMongoDBネイティブドライバーを介してdb.copyDatabaseを実行するにはどうすればよいですか?

  16. 16

    反応ネイティブを使用してAndroidでCallKitと同様の動作を実装するにはどうすればよいですか?

  17. 17

    Nodeモジュールを使用して電子アプリからアイドル時間を取得するにはどうすればよいですか?

  18. 18

    SQLObjectを使用して接続ドロップイベントにコールバックを実装するにはどうすればよいですか?

  19. 19

    Javaのネイティブコードを確認するにはどうすればよいですか?

  20. 20

    ネイティブのcorertプレビューを使用してビルドするにはどうすればよいですか?

  21. 21

    Springを使用したコンパイル時にプロパティファイルをロードするにはどうすればよいですか?

  22. 22

    AVRのコンパイル時[ディスパッチ]テーブルを実装するにはどうすればよいですか?

  23. 23

    ネイティブスクリプトを使用してAndroid8でMACアドレスを取得するにはどうすればよいですか?

  24. 24

    Ionic 5 / Capacitor:アプリがブラウザーで実行されているのか、ネイティブアプリとしてコンパイルされているのかを確認するにはどうすればよいですか?

  25. 25

    ビルド時にプロファイルを使用してプロパティファイルを生成する場合、EclipseでMaven Webアプリケーションを実行するにはどうすればよいですか?

  26. 26

    Angular 5 CLIを使用してサードパーティのライブラリをロードするにはどうすればよいですか?

  27. 27

    react jsを使用してカルーセルスライダーでカードアイテムを表示するにはどうすればよいですか?

  28. 28

    httpダウンロードに非アクティブタイムアウトを実装するにはどうすればよいですか

  29. 29

    iwコマンドを使用してWiFiネットワークをアクティブ化するにはどうすればよいですか?

ホットタグ

アーカイブ