3
我正在嘗試將OneSignal整合到我的Angular 2應用程序中以接收推送通知。首先,我使用普通的舊式HTML做了一個HelloWorld應用程序,它的工作非常漂亮。所以我試圖將它包含到我的Angular應用中,但用戶沒有被創建/註冊,因此沒有訂閱接收任何通知。將OneSignal與Angular 2 CLI集成
代碼摘錄:
的index.html
<html>
<head>
<meta charset="utf-8">
<title>My Angular App</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<head>
<link rel="manifest" href="/manifest.json">
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
<script>
var OneSignal = window.OneSignal || [];
console.log("Init OneSignal");
OneSignal.push(["init", {
appId: "xxx-xxx-xxx-xxx-xxx",
autoRegister: false,
allowLocalhostAsSecureOrigin: true,
notifyButton: {
enable: true
}
}]);
console.log('OneSignal Initialized');
OneSignal.push(function() {
console.log('Registered For Push');
OneSignal.getUserId().then(function (userId) {
console.log("User ID is", userId);
});
});
</script>
</head>
</head>
<body>
<app-root>
<div class="wrap">
<div class="loading outer">
<div class="loading inner"></div>
</div>
</div>
</app-root>
</body>
</html>
的用戶ID總是空。
我檢查以下內容:
- 應用程序ID是正確的
- 許可通知設置爲允許在瀏覽器
問題:
- 有在ngOnInit()方法中執行所有組件內部所有init事件的方法?
- 我想在用戶點擊組件內的按鈕而不是使用鈴鐺圖標時註冊推送?如何實現這一目標? (我知道notifyButton設置爲false將不會顯示通知鈴)
PS:使用角CLI Chrome的測試(不與FF或Safari工作)
也適用於Angular 5 with'angular-cli'。非常感謝你,你救了我的一天! :) –