-
インスタンス
ウェブプッシュくん を使えるようにします。
const WebPushKunOps = {
dir : '/webpush', // WebPushシステムがあるDIR。
debugMode: false, // true にすると、ところどころで console に情報が表示される
};
window.WebPushKun = new WebPushKun(WebPushKunOps);
-
analyzeBrowser()
アクセスしてきたユーザーのブラウザの WebPush対応状況を解析します。
返り値 Promise
let s;
await window.WebPushKun.analyzeBrowser().then(function(r) {
s = r;
});
console.log('First time status', s);
-
getStatusCode()
ブラウザの WebPush対応状況を statusCode であらわします。
statusCode 詳細は ★WebPush対応状況の「statusLists」を参照。
返り値 number
const statusCode = window.WebPushKun.getStatusCode();
if (statusCode === 200) {
alert('すでに購読済みです😄');
} else if (statusCode === 404) {
alert('非対応ブラウザです💀');
}
-
getStatusSlug()
ブラウザの WebPush対応状況を statusSlug であらわします。
slug 詳細は ★WebPush対応状況の「statusLists」を参照。
例えば、slug ごとに BOXを作成し非表示にしておき、
以下の様にしてブラウザの状態別に表示するようにすることも出来ます。
返り値 string
const statusSlug = window.WebPushKun.getStatusSlug();
const target = '#webpush_message_box__' + statusSlug;
if ($(target).get(0) ) {
$(target).show();
}
-
その他 StatusCode関連 function
lists 詳細は ★WebPush対応状況の「statusLists」を参照。
返り値 object
// statusCode の詳細データリストを取得。
const lists = window.WebPushKun.getStatusCodeLists();
// statusCode の説明文取得
const text = window.WebPushKun.getStatusText();
console.log(text, lists);
-
isSupported()
WebPushに対応してる場合は true を返します
返り値 boolean
if (window.WebPushKun.isSupported() === true) {
alert('WebPush対応ブラウザです😙');
}
-
isDenied()
このサイトの通知を「拒否」してる場合は true を返します
返り値 boolean
if (window.WebPushKun.isDenied() === true) {
alert('このサイトの通知を拒否しています😢');
}
-
getAllStatus()
analyzeBrowser() で解析した現在のブラウザの状態情報を全て取得
取得内容は ★WebPush対応状況の「All Status」を参照
const status = window.WebPushKun.getAllStatus();
console.log(status);
-
requestPermission()
左上に表示される「通知の許可ダイアログ」を開きユーザーに許可させ、新Tokenを取得→保持します。
返り値 Promise
↓をクリックしたら左上に通知の許可を求めるアレが表示されるので【許可】して下さい。
<button class="requestPermission">購読する</button>
<script>
$(document).on('click', '.requestPermission', function(e) {
e.stopPropagation();
window.WebPushKun.requestPermission()
.then(function(token) {
console.log('Success requestPermission!!', token);
setStatus(); // ←webpushSample.js 内参照
})
.catch(function(err) {
console.log('Error requestPermission!!', err);
});
return false;
});
</script>
-
unSubscribe()
サブスク(通知購読)の解除をします。
ブラウザの「通知を拒否」でもサブスク解除は可能です。
返り値 Promise
<button class="unSubscribeWebPush">購読を解除する😭</button>
<script>
$(document).on('click', '.unSubscribeWebPush', function(e) {
e.stopPropagation();
window.WebPushKun.unSubscribe().then(function(res) {
setStatus(); // ←webpushSample.js 内参照
});
return false;
});
</script>
-
setCallbackOfOnMessage(callbackFunction)
フォアグラウンドで通知を受信した際の処理を事前に登録しておけます。
これの指定がない場合は「通常の通知表示」されます。
例)↓以下は、showNotification() で「通常の通知表示」をさせ、
送信データを console.log() で確認する場合の処理。
引数 function
返り値 Promise
window.WebPushKun.setCallbackOfOnMessage(function(payload) {
window.WebPushKun.showNotification(payload)
.then(function(senddata) {
console.log('setCallbackOfOnMessage()', senddata);
})
.catch(function(error) {
console.log('catch setCallbackOfOnMessage()', error);
});
});
-
showNotification(payload)
payload を通常の通知表示をさせる。
※通常これは使わないが、デバッグや確認などに使う事が出来る。
返り値 Promise
const payload = {
notification: {
title: "通知のタイトル",
body : "通知の本文",
image: "https://hoge.com/img/hoge.png"
},
data: {
link: "https://hoge.com/test.html"
}
};
window.WebPushKun.showNotification(payload)
.then(function() {
console.log('メッセージ表示後');
})
.catch(function(err) {
console.log(err);
});