Я получаю все события от API в моем шаблоне. Мне нужно push-уведомление. По вашему опыту вы можете спросить меня, какой плагин очень хорош для push-уведомлений?
Я пытался это для Android:
в main-view-model.ts
import { Observable } from "tns-core-modules/data/observable";
import * as pushPlugin from "nativescript-push-notifications";
export class HelloWorldModel extends Observable {
private pushSettings = {
// Android settings
senderID: "387819224537", // Android: Required setting with the sender/project number
notificationCallbackAndroid: (stringifiedData: String, fcmNotification: any) => {
const notificationBody = fcmNotification && fcmNotification.getBody();
console.log(notificationBody)
this.updateMessage("Message received!\n" + notificationBody + "\n" + stringifiedData);
}
// iOS settings
// badge: true, // Enable setting badge through Push Notification
// sound: true, // Enable playing a sound
// alert: true, // Enable creating a alert
// notificationCallbackIOS: (message: any) => {
// this.updateMessage("Message received!\n" + JSON.stringify(message));
// }
};
private _counter: number;
private _message: string;
constructor() {
super();
this.message = "";
this.updateMessage("App started.");
let self = this;
this.onRegisterButtonTap();
}
get message(): string {
return this._message;
}
set message(value: string) {
if (this._message !== value) {
this._message = value;
this.notifyPropertyChange("message", value);
}
}
onCheckButtonTap() {
let self = this;
pushPlugin.areNotificationsEnabled((areEnabled: Boolean) => {
self.updateMessage("Are Notifications enabled: " + !!areEnabled);
});
}
onRegisterButtonTap() {
let self = this;
pushPlugin.register(this.pushSettings, (token: String) => {
self.updateMessage("Device registered. Access token: " + token);
// token displayed in console for easier copying and debugging durng development
console.log("Device registered. Access token: " + token);
if (pushPlugin.registerUserNotificationSettings) {
pushPlugin.registerUserNotificationSettings(() => {
self.updateMessage("Successfully registered for interactive push.");
}, (err) => {
self.updateMessage("Error registering for interactive push: " + JSON.stringify(err));
});
}
}, (errorMessage: String) => {
self.updateMessage(JSON.stringify(errorMessage));
});
}
onUnregisterButtonTap() {
let self = this;
pushPlugin.unregister(
(successMessage: String) => {
self.updateMessage(successMessage);
},
(errorMessage: String) => {
self.updateMessage(JSON.stringify(errorMessage));
},
this.pushSettings
);
}
private updateMessage(text: String) {
this.message += text + "\n";
}
}
в app.ts
import * as application from 'application';
import firebase = require("nativescript-plugin-firebase");
firebase.init({
}).then(
(instance) => {
console.log("Fierbase init done!");
},
(error) => {
console.log("Firebase init error: " + error);
}
);
application.run({ moduleName: 'app-root' });
в main-page.xml
<StackLayout class="p-20">
<Button text="Are notifications enabled?" tap="{{ onCheckButtonTap }}" android:visibility="collapsed" class="btn" />
<Button text="Register device" tap="{{ onRegisterButtonTap }}" class="btn" />
<Button text="Unregister device" tap="{{ onUnregisterButtonTap }}" class="btn" />
<Label text="Log:" class="h1" />
<ScrollView orientation="vertical">
<Label text="{{ message }}" class="h2" textWrap="true" />
</ScrollView>
</StackLayout>
в мобильном телефоне показать это
Когда я пытался отправить сообщение от Почтальона, в моем приложении не показывалось никаких уведомлений. Подскажите пожалуйста, в чем проблема?
в Почтальоне я пробовал как в :