Closed Livijn closed 4 years ago
I just realized that it was this part of the guide that created the error. It seems to work if I skip the step below.
If you would like to recieve the firebase FCM token from iOS instead of the raw APNS token, you will need to also change your AppDelegate.didRegisterForRemoteNotificationsWithDeviceToken code to look like this:
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Messaging.messaging().apnsToken = deviceToken
InstanceID.instanceID().instanceID { (result, error) in
if let error = error {
NotificationCenter.default.post(name: Notification.Name(CAPNotifications.DidFailToRegisterForRemoteNotificationsWithError.name()), object: error)
} else if let result = result {
NotificationCenter.default.post(name: Notification.Name(CAPNotifications.DidRegisterForRemoteNotificationsWithDeviceToken.name()), object: result.token)
}
}
}
However, I am interested in the FCM token rather than the APNS token.
I would wager it is related to this PR (the doc update came out in 1.4.0 and there was a small code change or two around the push code on iOS): https://github.com/ionic-team/capacitor/pull/2078
@bryplano Yes, you are correct. I added print()
to debug what was going on in PushNotifications.swift
and suddenly it worked. Does Xcode cache certain files on build? Anyway, it works now. Thanks.
As soon as I run PushNotifications.register();
the app registers the FCM Token. Shouldn't this only happen when the user presses "Allow"? How do I know if the user allowed/declined the permission?
Shouldn't this line of code fire an event so we know what the user choice was?
@bryplano Yes, you are correct. I added
print()
to debug what was going on inPushNotifications.swift
and suddenly it worked. Does Xcode cache certain files on build? Anyway, it works now. Thanks.
Had this exact problem, even after reinstalling packages. Writing to the file solved it. Thanks!
@bryplano Yes, you are correct. I added
print()
to debug what was going on inPushNotifications.swift
and suddenly it worked. Does Xcode cache certain files on build? Anyway, it works now. Thanks.Had this exact problem, even after reinstalling packages. Writing to the file solved it. Thanks!
Same here. Added print() in PushNotifications.swift and it works
Can someone post what their PushNotifications.swift
file looks like with the print statements? Thanks!
This is still happening for me sometimes. Product -> Clean Build Folder fixed it this time.
Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Capacitor, please create a new issue and ensure the template is fully filled out.
Bug Report
Capacitor Version
npx cap doctor
output:Affected Platform(s)
Current Behavior
First I remove the app and on start up, the "permission alert" appears asking for notification permissions. Whether I accept or decline, no listener is fired on my real iOS device (iPhone Xs 13.1.3). However, when testing using the iOS Simulator, the
registrationError
listener is indeed fired.When I click on the "permission alert", this is printed in the console:
So for some reason, this listener is fired instead.
Expected Behavior
PushNotifications listeners should fire after accepting/declining permissions.
Sample Code or Sample Application Repo
I am using Ionic + Vue.js.
Other Technical Details
npm --version
output: 6.13.0node --version
output: v12.9.1pod --version
output (iOS issues only): 1.8.4