Javascript 未捕获类型错误:OneSignal.once不是函数
我想向浏览器发送推送通知。所以我用了一个信号Javascript 未捕获类型错误:OneSignal.once不是函数,javascript,push-notification,onesignal,Javascript,Push Notification,Onesignal,我想向浏览器发送推送通知。所以我用了一个信号 var OneSignal = OneSignal || []; OneSignal.push(["init", { appId : "xxxxxxx", autoRegister : false, /* Set to true to automatically prompt visitors */ subdomainName : "https://foxtaxi.onesignal.
var OneSignal = OneSignal || [];
OneSignal.push(["init", {
appId : "xxxxxxx",
autoRegister : false, /* Set to true to automatically prompt visitors */
subdomainName : "https://foxtaxi.onesignal.com",
notifyButton : {
enable: true /* Set to false to hide */
}
}]);
OneSignal.push(function() {
OneSignal.once("init", function(event) {
alert("hhh");
});
});
但是我得到了未捕获的类型错误:OneSignal.once不是函数。如果有人知道,请帮助我。解决方案
您需要使用OneSignal.push(function(){…})
包装您的调用:
另外,
OneSignal.once('init')
不是有效的事件。这个
解释
OneSignal SDK在您的页面上异步加载,例如:
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async"></script>
这表示:创建一个OneSignal变量,如果OneSignal已经加载,则将其分配给加载的实例,否则让OneSignal等于空数组[]
所有数组都有一个,所以在这一点上,OneSignal变量只是一个函数数组
当SDK最终加载时,SDK将自动启动。Hi jason。谢谢你的回答。现在我没有得到那个控制台错误。但是,当我在init函数上设置警报时,我没有收到警报消息。我已更改代码以供参考。
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async"></script>
var OneSignal = window.OneSignal || [];
OneSignal.push(function() {
OneSignal.once("init", function(event) {
// This callback fires only once when the event occurs, and does not refire
});
});