name: 'WebPushError',
message: 'Received unexpected response code',
statusCode: 400,
headers:
{ 'content-type': 'text/html; charset=UTF-8',
date: 'Fri, 24 Aug 2018 11:16:39 GMT',
expires: 'Fri, 24 Aug 2018 11:16:39 GMT',
'cache-control': 'private, max-age=0',
'x-content-type-options': 'nosniff',
'x-frame-options': 'SAMEORIGIN',
'x-xss-protection': '1; mode=block',
server: 'GSE',
'alt-svc': 'quic=":443"; ma=2592000; v="44,43,39,35"',
'accept-ranges': 'none',
vary: 'Accept-Encoding',
connection: 'close' },
body: '<HTML>\n<HEAD>\n<TITLE>UnauthorizedRegistration</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n<H1>UnauthorizedRegistration</H1>\n<H2>Error 400</H2>\n</BODY>\n</HTML>\n',
endpoint: 'https://fcm.googleapis.com/fcm/send/cMYLTEcm8xg:APA91bGz2y5mBVOUTi4T57Lbcq_re9IMHdnuq7tVXPfQ0IHuGtKv5Y_HNRAmglqjsvFNLisTvjRqRlmG3oi5Fu_lEnUp3nB9inN2xKRs_Wh92hZA0X_70P7h5BnhmPG15ZyrjIKMbpCg'
}
源代碼
server.js
app.post('/register', function(req, res) {
var endpoint = req.body.endpoint
// var key = req.body.key
// var authSecret = req.body.authSecret
// console.log(saveSubscriptionToDatabase)
// //保存用戶注冊信息
// saveRegistrationDetails(endpoint, key, authSecret)
// console.log(11)
const pushSubscription = {
endpoint: req.body.endpoint,
keys: {
auth: req.body.authSecret,
p256dh: req.body.key
}
}
var body = "thank u for registering"
var iconUrl = "http://localhost:3001/icon.png"
console.log(pushSubscription)
//推送消息
webpush.sendNotification(pushSubscription,
new Buffer(JSON.stringify({
msg: body,
url: "http://localhost:3001/pwa",
icon: iconUrl
}), 'utf8')
).then( response => {
res.sendStatus(201)
}).catch(err => {
console.log(err)
})
})
if("serviceWorker" in navigator) {
navigator.serviceWorker.register("/sw.js")
.then(function(registration) {
return registration.pushManager.getSubscription() //獲取訂閱,如果沒有訂閱就 訂閱
.then( subscription => {
if(subscription) return null
return registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array(vapidPublicKey)
})
.then( subscription => {
console.log(subscription)
var rawKey = subscription.getKey ? subscription.getKey('p256dh') : ''
var key = rawKey ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawKey))) : ''
var rawAuthSecret = subscription.getKey ? subscription.getKey('auth') : ''
var authSecret = rawAuthSecret ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawAuthSecret))) : ''
//注冊用戶
return fetch('/register', {
method: 'post',
headers: new Headers({
"content-type": "application/json"
}),
body: JSON.stringify({
endpoint: subscription.endpoint,
key: key,
authSecret: authSecret
})
})
})
.catch( err => {
console.log('注冊失敗',err)
// console.log('注冊失敗!')
})
})
})
.catch(function(err) {
console.log("err", err)
})
}
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術與教育服務機構,發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。