26

サイトに WebKit のネイティブ デスクトップ通知のサポートを実装しようとしています。通知を使用するユーザーの許可を求めようとすると、まったく何も起こりません。たとえば、次の HTML は Chrome に許可を求めるプロンプトを表示しません。

<html lang="en">
<head></head>

<body>
    <h1>Testing</h1>
    <script>
        window.webkitNotifications.requestPermission();
    </script>
</body>
</html>

他のサイト (例: http://www.html5rocks.com/tutorials/notifications/quick/ ) は問題なく動作するため、私のバージョンの Chrome に問題がないことはわかっています。プロンプトとその後の通知の両方を確認できます。

4

2 に答える 2

50

chromium api docsで仕様を確認してください。ユーザーのジェスチャー/アクション(マウスクリックなど)へのフィードバックとしてのみ呼び出すことができます。

requestPermission ユーザー エージェントが、スクリプトからの通知を表示する許可をユーザーに求めるように要求します。 このメソッドは、ユーザー ジェスチャの処理中にのみ呼び出す必要があります。他の状況では効果がありません。このメソッドは非同期です。コールバックで提供される関数は、ユーザーが許可要求に応答したときに呼び出されます。現在のアクセス許可レベルが PERMISSION_DENIED の場合、ユーザー エージェントは requestPermission に応答して何のアクションも実行しない可能性があります。

UPDATE 2014-10-01 : Chrome 37 では、ユーザー ジェスチャーの要件が削除されました。いつでも通知を表示する許可をリクエストできるようになりました。古いバージョンの Chrome も (たとえば、企業環境で) ターゲットにしたい場合は、おそらく引き続きユーザー ジェスチャー イベントに依存する必要があります。

于 2011-02-18T10:33:05.943 に答える
2

ローカル ファイル (file://) の許可に関する通知を確認すると、ポップアップが表示されますが、通知は chrome では機能しません。

回避策として、変更できます

コンテンツ設定 > 通知 > すべての Web サイトに通知を表示することを許可する

通知を表示する最短コード

var notification = new Notification("YOUR MESSAGE");
于 2014-10-14T09:51:48.570 に答える