iOS FAQ

Can you read the notification payload information?

For iOS you can send an extra payload alongside an App Inbox message. A payload is any form of string that your app can read in and then use such as an image or extra text.

Badge counts and scheduled notifications?

When a notification is scheduled to deliver at a specific time in the future, the total badge count may be the total count when the notification was scheduled, unless the app has refreshed.

tip

Clearing the application badge number (e.g. setting it to 0) will also remove all delivered notifications. Using ClearBadgeCount to clear badges on launch/activate will set it to -1, keeping the notifications available.

Submitting your app with location to the app store for the first time?

The standard phrasing suggested by Apple for the app description (and in the Apple docs) should be more than sufficient for what you do with OpenBack, which is “Continued use of GPS running in the background can dramatically decrease battery life”.

If there is any lack of clarity or other issues with the app store, here are some further details that can be used.

Your App uses your location as part of sending local and push notifications to you at the right time.

Specifically the app uses significant changes in background location to enable you to receive notifications like these:

  • Receive notifications when you are near a location with Your App.
  • Receive notifications to use the app if you are in particular countries.

Continued use of GPS running in the background can dramatically decrease battery life.

Your App doesn’t run GPS in the background unless you give us permission by having optional features turned on, and even then only runs this from time to time, which is far better for your battery life than running it all the time.”

Can I manually clear notifications?

Yes, you can manually clear notifications by using the standard APIs on the Apple UNUserNotificationCenter.

Example
let center = UNUserNotificationCenter.current()
center.removeAllDeliveredNotifications()

How large is the iOS SDK?

The SDK is very lightweight and is roughly 815kB in size depending on the device.

Background Modes

Enabling Background Modes is required so that SDK can run various tasks from the background. The SDK performs three general background tasks.

Syncing new messages

The SDK periodically collects the latest campaigns, messages, content, settings & business rules from your OpenBack account. This occurs for each user at different times based on the frequency level that you have set in your App Settings. The default setting is to pull down the latest messages once per day.

Polling data

The SDK typically polls data back (such as message stats) to your OpenBack dashboard every so often. This occurs for each user at different times based on the frequency level that you have set in your App Settings. The default setting is polls data back to the platform every 12 hours.

Checking current messages

The SDK runs a check to see if there are any messages on the device ready to deliver which occurs in the background every ~15 minutes. This check also runs when certain actions are performed within the app such as a Custom Segment being changed or a Custom Event/Goal being set.

iOS App Store privacy questions?

Given our mobile edge computing approach, which means user data does not need to leave the device, the out of the box setup for OpenBack means you do not need to provide privacy information.

You can read more in our Knowledge Centre here

Does OpenBack work without APNs?

While it's recommended that you use APNs, the OpenBack SDK still functions normally without it. The SDK periodically pulls down the latest messages based on the Sync Frequency that is set in your App Settings page. The messages are then cached to each users device and are ready to deliver at the perfect moment.

Using the Keychain Services API?

If your app uses the Keychain Services API, ensure that you get a valid response before running any important checks as a locked device can't access the keychain. Silent push notifications and scheduled alarms within the OpenBack SDK will briefly open your app in the background. This happens whether the device is locked or unlocked.

How does the Brightness signal work?

The Brightness signal delivers messages to the user based on the ambient light around the phone. This value is measured in SI lux units.

Why can I see 404 responses in the Firebase Network Monitor?

If your app uses the Firebase Network Monitor or similar tools, you may see it tracking 404 responses from the OpenBack SDK. This is normal behavior and is due to the SDK checking to see if specific message files are present. If those files aren't required or available, this can be logged as a 404, as the resources don't exist.

Using the Sync Frequency settings in the dashboard, the app checks for the latest content & settings updates from the OpenBack platform. The SDK checks for 3 main content & settings files:

  1. Global message campaigns
  2. Messages just for that user (e.g., sent via the OpenBack API to a specific user identity)
  3. Messages with multiple languages.

If your implementation of OpenBack doesn't use 2) or 3), there won't any data available which will result in 66% of the OpenBack network requests returning a 404 response. Please contact us if you would like any further details.

How do I send images in a push notification?

You can easily add an image in step 2 of the message creation. An image can be sent as part of an in-app message or as a piece of rich notification content. To send an image, you must include a URL that ends with .png/.jpg/.jpeg such as "https://icatcare.org/app/uploads/2018/07/Thinking-of-getting-a-cat.png". You cannot use Google Drive, Dropbox or similar hosting services to send an image as the SDK needs to be able to download the image.

How do I send videos in a push notification?

You can easily add a video in step 2 of the message creation and it is sent as part of an in-app message. To send a video, you must include a URL that ends with .mp4/.avi such as "https://www.w3schools.com/html/movie.mp4". You cannot use Google Drive, YouTube or similar hosting services to send a video as the SDK needs to be able to download the video to deliver the message.

Issues with Podfile?

If you have some issues with installing OpenBack via Cocoapods, it may be to do with the cached podfile. You can use the code below in your terminal to clear the cached pods.

rm -rf ~/.cocoapods/repos/trunk/