2017-11-17 17 views
2

ログイン中にユーザーからの通知の許可を求めるウェブサイトがあります。彼/彼女が許可(以下のコードを参照)クロムでの通知。許可は常に拒否されました

//Checks if user browsers notification is "Allowed", if "denied", logs out user 
if(Notification.permission == 'denied') { 
    removeAllCookies($cookies); 
    $location.path("/login"); 
} 

このコードは、最初はOKと思われるが、ちょうど今日それが故障し始めたを拒否したとき、私はそこにコードその自動ログアウトユーザーを持っています。すべての新規ユーザーは、まだ権限を設定していなくても自動的にログアウトします。

アドレスバーの左側にあるファビコンで手動でアクセス許可をチェックしようとしても、それでもask(default)に設定されていることがわかります。また、手動でAllowに設定しようとしましたが、まだNotification.permissionの機能は拒否されました。これは何の原因ですか?それは私のPCでOKですが、他のすべてのユーザーはそれを自動ブロックします。

EDIT:ちょうど私のPCですでに同じことが起こっています。私の通知の許可は許可されていますが、Notification.permissionは常にdeniedを返します。私はそれを記録したコンソールで、本当に拒否されます。誰でも?

+0

'localhost'では動作しますが、別のサイトでは動作しませんか? –

+0

私が意味することは、それは私のPCで動作しますが、ウェブサイトにアクセスしている他のPCの自動ログアウトです –

答えて

0

あなたはiframeの中で許可を読み込んでいますか? IFRAME内あなたがそこに持って

+0

いいえ、私はangularjsを使用しています。私はページのコントローラ内で 'Notification.permission'を実行します。基本的には、コードが実行するページをロードするときです。 –

0

奇妙なビジネスロジックを要求された場合Notification.permissionが拒否返しますが、何が価値がある...

のためのいくつかの規定のクロームプットがあり、クロムの変更、のように思えます場所:

1)HTTPSまたはlocalhostを使用している必要があります。あなたがいない場合、それは自動的に私の経験

2でアクセス許可を拒否します)を使用すると、サービスワーカーを登録する場合は、より確実に動作(私はそれが実際に携帯クロムのために必要だと思う)

通知を取り巻く文書を必ずお読みくださいAPIを徹底的に理解してください。 MDNは素晴らしいリソースです。

Notification.requestPermission().then(function(permission) { 
//if permission == 'denied' // logout 
} 

これのいずれかの場合に役立ちます私に教えてください:役立つかもしれない他の

何かがあなたがrequestPermissionの約束に包まれたあなたの通知ロジックを持って保証することです。