English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

モバイルとコンピュータに適した通知情報効果のJS作成

今日のプロジェクトはほぼテスト完了しており、空き時間を利用して2つの記事を書きました。前回の「nodeプロジェクトの構築方法」は、学びたいと考えている方々は既に見たと思います。この記事で最後に見せた効果は本当に素晴らしく、ここで記録しておきたいと思います。将来的には自分でも見返せるように。
以前と同じ手順で、一つずつ説明します。そうすることで、考え方が明確になります。

まずは効果を見てみましょう:

右下角に注意してください。表示されるポップアップメッセージが、私たちが実現した効果です。

効果を見てから、次に分布解説モードに入ります………..

第1歩:まずは骨組みを作成します

以下のコードはすべてscriptタグ内で書かれています。皆さんはscriptタグ内の内容に注目してください:

  <!DOCTYPE html>
  <html>
  <head lang="en">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta charset="utf-8">
    <meta content="" name="description">
    <meta content="" name="keywords">
    <meta content="eric.wu" name="author">
    <meta content="application/xhtml+xml;charset=UTF-8" http-equiv="Content-Type">
    <meta property="qc:admins" />
    <meta content="telephone=no, address=no" name="format-detection">
    <meta content="width=device"-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
    <title>メッセージプッシュの例</title>
  </head>
  <body>
     右下角を見て、メッセージ通知......
  </body>
  </html>
  <script type="text/javascript">
  </script>

第2歩:ブラウザがWeb Notifications APIをサポートしているかの判断

ここでWeb Notifications APIがサポートされているかどうかを判断します。このものがサポートされていないと、次のものを続けることができません。

   function justify_notifyAPI(){
      if (window.Notification) {
        // サポートしています
        console.log("サポートしています"+"Web Notifications API"
      } else {
        // サポートしていません
        console.log("サポートしていません"+"Web Notifications API"
      }
    }

第3歩:ブラウザがポップアップインスタンスをサポートしているかどうかを確認します

ここにポップアップがあります。ブラウザがポップアップインスタンスをサポートしているかどうかを確認します(画像のURLを自分のURLに変更してください)。

function justify_showMess(){
  if(window.Notification && Notification.permission !== "denied") {
    Notification.requestPermission(function(status) {
      if (status === "granted") {
        var n = new Notification('收到信息:-O', {
          body: '这里是通知内容!你想看什么客官?',
          icon:"../../images/headerPic/QQ画像20160525234650.jpg"
        });
      } else{
        var n = new Notification("baby! i will leave you!");
      }
    });
  }
}

第4ステップ:インスタンス表示されたコンテンツ

Notification構造関数のtitle属性は必須で、通知のタイトルを指定するために使用されます。options属性はオプションで、設定を設定するために使用されるオブジェクト形式です。このオブジェクトの属性は以下の通りです:

dir:テキストの方向、auto、ltr(左から右)、rtl(右から左)の値が可能です。一般的にはブラウザの設定を継承します。

lang:使用する言語、例えばen-US、zh-CN。

body:通知の内容、文字列形式、通知の目的をさらに説明するために使用されます。

tag:通知のID、文字列形式。同じtagの通知は同時に表示されません。ユーザーが前の通知を閉じた後、元の位置に表示されます。

icon:通知に表示する図のURL

  function otification_construct(){
  var notification = new Notification('收到新邮件', {
    body: 'あなたは、1雪静からの未読メールが届きました。',}}
    dir: "auto",
    lang:"zh",-CN",
    tag: "a",1",
    icon:"../../images/headerPic/772513932673948130.jpg"
  });
  console.log(notification.title); // "新しいメールが届きました"
  console.log(notification.body); // "あなたは合計で、3未読メールの封。"
}

第5ステップ:Notifications APIの関連イベント

Notificationインスタンスは以下の3種類のイベントをトリガーします:
show:通知がユーザーに表示された場合に発生。

click:ユーザーが通知をクリックした場合に発生。

close:ユーザーが通知を閉じた場合に発生。

error:通知が正しく表示されない場合に発生(通知が正しく表示できない場合に発生)。

これらのイベントには、onshow、onclick、onclose、onerrorメソッドがあり、対応するコールバック関数を指定するために使用されます。addEventListenerメソッドもこれらのイベントにコールバック関数を指定するために使用できます。

function otification_event(){
  var MM = new Notification("Hi! My beautiful little princess!",{
    body: 'あなたは、1宇宙から来たメール。',
    icon:"../../images/headerPic/20100114212301-1126264202.jpg"
  });
  MM.onshow = function() {
    console.log('Notification showning!');
  };
  MM.onclick = function() {
    console.log('Notification have be click!');
  };
  MM.onerror = function() {
    console.log('Notification have be click!');
    // 手動で閉じる
    MM.close();
  };
}

ここでは基本的な機能が説明されました。上記の効果のデモソースコードを以下に付けています:

<!DOCTYPE html>
<html>
<head lang="en">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta charset="utf-8">
  <meta content="" name="description">
  <meta content="" name="keywords">
  <meta content="eric.wu" name="author">
  <meta content="application/xhtml+xml;charset=UTF-8" http-equiv="Content-Type">
  <meta property="qc:admins" />
  <meta content="telephone=no, address=no" name="format-detection">
  <meta content="width=device"-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
  <title>Web Notifications API</title>
</head>
<body>
 右下角を見て、メッセージ通知......
</body>
</html>
<script type="text/javascript">
  window.onload= function(){
    justify_notifyAPI();   //ブラウザが Web Notifications API をサポートしているかどうかを判断
    justify_showMess();   //ブラウザが弹出インスタンスをサポートしているかどうか
    otification_construct(); //インスタンス表示されたコンテンツ
    otification_event();   //Notifications APIの関連イベント 
  }
  //ブラウザが Web Notifications API をサポートしているかどうかを判断 
  function justify_notifyAPI(){
    if (window.Notification) {
      // サポートしています
      console.log("サポートしています"+"Web Notifications API"
    } else {
      // サポートしていません
      console.log("サポートしていません"+"Web Notifications API"
    }
  }
  //ブラウザが弹出インスタンスをサポートしているかどうか
  function justify_showMess(){
    if(window.Notification && Notification.permission !== "denied") {
      Notification.requestPermission(function(status) {
        if (status === "granted") {
          var n = new Notification('收到信息:-O', {
            body: '这里是通知内容!你想看什么客官?',
            icon:"../../images/headerPic/QQ画像20160525234650.jpg"
          });
          // alert("Hi! this is the notifyMessages!");
        } else{
          var n = new Notification("baby! i will leave you!");
        }
      });
    }
  }
  // インスタンス表示されたコンテンツ
  function otification_construct(){
    var notification = new Notification('收到新邮件', {
      body: 'あなたは、1雪静からの未読メールが届きました。',}}
      dir: "auto",
      lang:"zh",-CN",
      tag: "a",1",
      icon:"../../images/headerPic/772513932673948130.jpg"
    });
    console.log(notification.title); // "新しいメールが届きました"
    console.log(notification.body); // "あなたは合計で、3未読メールの封。"
  }
  //Notifications APIの関連イベント
  function otification_event(){
    var MM = new Notification("Hi! My beautiful little princess!",{
      body: 'あなたは、1宇宙から来たメール。',
      icon:"../../images/headerPic/20100114212301-1126264202.jpg"
    });
    MM.onshow = function() {
      console.log('Notification showning!');
    };
    MM.onclick = function() {
      console.log('Notification have be click!');
    };
    MM.onerror = function() {
      console.log('Notification have be click!');
      // 手動で閉じる
      MM.close();
    };
  }
</script>

これで本文の全てが終わりました。皆様の学習に役立てば幸いですし、呐喊教程を多くの皆様にサポートしていただけると嬉しいです。

声明:本文の内容はインターネットから取得しており、著作権者はすべての権利を持ちます。インターネットユーザーが自発的に貢献し、自己でアップロードしたものであり、本サイトは所有権を持ちません。また、人工的な編集は行われていません。著作権侵害の疑いがある場合は、メールを notice#w までご送信ください。3codebox.com(メールを送信する際には、#を@に変更してください。報告を行い、関連する証拠を提供してください。一旦確認がとりたいとすれば、本サイトは即座に侵害疑いのコンテンツを削除します。)

おすすめ