Push-уведомления конденсатора iOS вызывают неправильный обратный вызов при регистрации?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Push-уведомления конденсатора iOS вызывают неправильный обратный вызов при регистрации?

Сообщение Anonymous »

Итак, в ngOnInit файла Welcome-page.comComponent.ts моего углового-ионного приложения я называю это:

Код: Выделить всё

`if (Capacitor.platform !== "web") {
this.registerPush();
}`
а именно:

Код: Выделить всё

`private async registerPush() {
if (Capacitor.getPlatform() === "android") {
let permStatus = await PushNotifications.checkPermissions();

if (permStatus.receive === "prompt") {
permStatus = await PushNotifications.requestPermissions();
}

if (permStatus.receive !== "granted") {
throw new Error("User denied permissions!");
}

await PushNotifications.register();
} else if (Capacitor.getPlatform() === "ios") {
PushNotifications.requestPermissions().then((result) => {
if (result.receive === "granted") {
PushNotifications.register();
} else {
console.error("User denied push notification permissions!");
}
});
}

PushNotifications.addListener("registration", async (token) => {
console.log("My token: " + token.value);

const user = await this.authService.getUserInSession();
const decryptUser = Globals.decryptOjbectsInSession(user);

this.authService
.updateRegKey({
cpf_cnpj: decryptUser.usuario.cpfcnpj,
reg_key: token.value,
})
.subscribe((response: any) => {
console.log("response: ", response);
});
});

PushNotifications.addListener("registrationError", (error) => {
console.log("Error on registration: " + JSON.stringify(error));
});

PushNotifications.addListener(
"pushNotificationReceived",
(notification) => {
console.log("Push notification received: ", notification);
}
);

PushNotifications.addListener(
"pushNotificationActionPerformed",
(notification) => {
console.log(
"Push notification action performed",
notification.actionId,
notification.inputValue
);

this.router.navigate([notification.notification.data.url]);
}
);
}`
и я считаю, что это сделано именно так, как сказано в документации. и он ДЕЙСТВИТЕЛЬНО работает на Android, как на симуляторе, так и на физическом устройстве, он принимает токен устройства, а затем регистрируется в моей базе данных postgres, чтобы я мог использовать API для отправки уведомления.
android (работает)НО для симулятора iOS (у меня нет физического для тестирования) он просто не работает.
ios добавляет прослушиватели, а ios не вызывает правильный обратный вызов
и я не знаю, как именно это работает, но похоже, что он вызывает другой обратный вызов. Видите ли, обратный вызов регистрации, который я создал, по-видимому, является «#11279332», а когда он вызывается, вызывается тот, который называется «#11279336». на Android они одинаковые (#102964981)
Я пробовал использовать обе документации, которые смог найти:
https://capacitorjs.com/docs/guides/push -notifications-firebase и https://ionicframework.com/docs/native/ ... ifications
установили конденсатор/push-notifications и использовали команду «npx cap sync»
создал проект Firebase, получил GoogleService-Info.plist, добавил в xCode, как его просили, а также добавил ключ авторизации от Apple в проект Firebase
добавил «pod Firebase/Messaging» в файл Pods и обновил с помощью «npx cap update ios»
также добавил «import Firebase» и «FirebaseApp.configure()» " в AppDelegate.swift и обе функции:

Код: Выделить всё

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Messaging.messaging().apnsToken = deviceToken
Messaging.messaging().token(completion: { (token, error) in
if let error = error {
NotificationCenter.default.post(name: .capacitorDidFailToRegisterForRemoteNotifications, object: error)
} else if let token = token {
NotificationCenter.default.post(name: .capacitorDidRegisterForRemoteNotifications, object: token)
}
})
}`

`func application(_ application: UIApplication,
didFailToRegisterForRemoteNotificationsWithError error: Error) {
NotificationCenter.default.post(name:
.capacitorDidFailToRegisterForRemoteNotifications, object: error)
}`
Я использовал команды: «ionic build» и «npx cap copy», а затем открыл vscode с помощью «npx cap open ios»
я создал профиль Apple с разрешением на push-уведомления и загрузил его в xcode,
профиль разработчика и xcode
я также включил возможность push-уведомлений внутри vscode .
Шагов много, и я считаю, что сделал их все. может кто-нибудь сказать мне, что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/785 ... n-callback
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • (тихие) push-уведомления не вызывают DidReceiveRemoteNotification
    Anonymous » » в форуме IOS
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Локальные уведомления, не поступающие в ios, реагируют на встроенные push-уведомления
    Anonymous » » в форуме IOS
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • ZKTECO PUSH SDK - Я не получаю http-сообщения о регистрации или регистрации (распознавание лиц)
    Anonymous » » в форуме JAVA
    1 Ответы
    92 Просмотры
    Последнее сообщение Гость
  • ZKTECO PUSH SDK - Я не получаю http-сообщения о регистрации или регистрации (распознавание лиц)
    Anonymous » » в форуме C#
    0 Ответы
    44 Просмотры
    Последнее сообщение Anonymous
  • Обновление сертификата Apple Push Push Push
    Anonymous » » в форуме IOS
    0 Ответы
    51 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»