I'm looking for a way to reliably implement notifications for an iOS app without using the Apple push notification service.
Due to some constraints on the app - it's not a centralized app, the company sells server software to customers who run on their own servers, from which they don't want to share any information with a centralized service, and it frequently operates in closed networks that don't have internet connectivity for safety reasons or simply because they are in remote locations where internet traffic is expensive and not used unless absolutely necessary - I can't use the standard push notification route.
I've implemented a system that uses the iOS background fetch mechanism, performing a background download that creates a local notification if needed, upon completion of the download - and it works, sort-of, partially. But since background fetch is initiated at the discretion of some magical iOS algorithm, it's quite unreliable. At best it manages to get a single notification after the user minimizes the application, or sometimes iOS does not call application:performFetchWithCompletionHandler at all (at least for periods of time that essentially make the feature useless) even though I've called setMinimumBackgroundFetchInterval to UIApplicationBackgroundFetchIntervalMinimum.
Is there some way to ask iOS to initiate background fetching more frequently and reliably? Is there some other method I can use to deliver notifications to iOS apps that are in the background, without relying on the availability of anything else on the network, except a server that I control? Is this a dead end?