Swift: Detect and Cancel Another App's Notification - swift

On Android, I have a NotificationListenerService that I can use in my third party app to intercept push notifications from a service's official app, cancel it, and post my own from my app's service (basically shadowing a push notification and making my own so I don't have to constantly poll the service's API).
Is there anything similar on iOS? I have been searching and cannot find documentation of anything that lets me capture another app's posted notification events, but I know it is possible to view their content as some apps (like the Samsung Watch's app) can forward notifications to other displays.

No there is no such feature on iOS. Apple goes to great lengths to prevent 3rd party apps from altering the behavior of the system or of other apps.

Related

Flutter best way to store App Notifications?

Is there a way to store app notifications in a flutter app. Most of the time this app will be closed and the app notifications will not directly be hitting the app. I would like to store app notifications in a notifications received section. I know I can get the notifications if the app is opened, but for if the app is closed and it just shows as a status, I can't get them in the device unless the user clicks on the notification message. and it opens the app. What options do I have and is what I am wanting to do even possible?
First interpretation of your question: If I read your question correctly, you're saying its not possible to have text in your notifications when the app is not open. This is definitely possible, almost all your apps create notifications on the device with more than just 'status'.
Another interpretation of your question: In response to a firebase cloud messaging message, you might want to save data or do some other background task, instead of just creating a notification the user sees. This is not enabled by default. There's lots more instructions on enabling and using this in the README
By default background messaging is not enabled. To handle messages in the background:
The golden nugget of information is _firebaseMessaging.configure(onBackgroundMessage: yourBackgroundMessageHandler) which is not listed under the receiving messages section.
Let me know if I misread. What do you mean by status?
You can use background Fetch to make the app stay in the background. The package will awaken an app in the background about every 15 minutes.

Do newsstand apps require push notifications?

If I submit a newstand app that does not use push notifications, but instead queries my server for new content each time the user launches the app will apple reject my app?
I.e. Do users expect push on all newsstand apps?
Thanks
No, Apple's guidelines do not mandate the use of push notifications, and your app should not be rejected for not using them. However it may provide a better experience for your users if you implement push notifications. Otherwise the only way for a user to know that updates are available is to manually run your app and check.
Note that the official review guidelines for a Newsstand app are exactly the same as the review guidelines for any other app.
Aroth has answered the question correctly but I want to add few important points to keep in mind for Newsstand apps based on my personal experience.
Apple will reject any Newsstand app without subscription in it.
In case all your content is free still you have to create a Free
subscription.
The content must be a magazine/newspaper/newsletter.No catalog etc
in Newsstand.
The new content must come with frequency of at most a quater.
To answer this question
Do users expect push on all newsstand apps?
YES they will, because it is one of the most important functionality of NS apps and is assumed by default. Every single NS app in App Store has it.
While the technical answer is "no", there is a very good point to implement push notifications. The end user is expecting to see fresh content "magically appearing" in the newsstand applications without actual interaction. For this feature to work, you need to implement background downloading on new issues, data, whatever, which is possible when you have an APNS server informing (and waking up) your application on new content.
I can confirm that a newsstand app with a method for in app purchase of a Free subscription but without automatic content pushing will not be rejected.
Apple just approved an app I've been working on that only has a Dummy "functionality" for subscribing to Free subscription.
User touches "Subscribe now for free", goes through in app purchase and that's it - nothing changes.
Sole purpose of that button is to get the app approved.
Btw. I've implemented that button only 'cause of this thread.
Thanks!

iPhone Push notifications via mobile safari

Is there a way to simulate push notifications by pushing data to mobile safari? Here are 2 scenarios.
I make a web app via phonegap and dont want to use APNS but rather make a web-socket connection and push data to the device myself. On the device end is there a "alert" function I can call to emulate a pop up when a user is not in the application?
Lets throw web app out the window. Is there a way I can do this in native mobile safari? Im not talking about a plain old JS alert window that would only come up if the user was in the app, but be able to do so with it backgrounded.
You cannot run background tasks with mobile safari so for #2 you can't do true push notifications or alerts. However you can send a user an SMS if you have the user's phone number. This can have a hyperlink to a part of your web site (which can contain some sort of payload). You can use a service such as Twilio to help you send SMS'es. However this costs money. APNS does not.
For scenario #1 I'm assuming you're talking about a native app using a phonegap solution. In this case when the app is backgrounded you cannot access any UI at all and wake up the app and show a UIAlert. In fact unless an app is registered for location updates or background music, the app is effectively not going to respond after a set period of time (it only can "finish" certain operations it had started before). So the websocket solution will only be effective if the user has the app opened.
You could register a local notification that runs at some predetermined time which will show an alert. But that is not being pushed from the server so its probably not what you want.
APNS is your best solution for scenario #1. Its not that hard to implement and its pretty inexpensive. Check out urban airship if you want to avoid building out your own server-side components for it.

IPhone push notfication for a webapp?

Is it possible to implement IPhone's push notification service for a
Webapp that has an icon on the "desktop"? If so how?
That depends on exactly what you mean by Webapp that has an icon on the "desktop"?
No, if you're referring to a webapp where you have saved a link with Add to Home screen as per this Apple instruction.
Yes, if your webapp is a thin CocoaTouch shell using webkit.
i have an alternative solution for this:
1) create a gmail account and get gpush app on your iphone (setup the gmail in the app).
2) instate of sending direct notification to iphone, you can send an email from your webapp to the gmail account.
3) within 5 sec. you will receive the push notification.
hope this help.
You can always delegate the messaging to 3rd party notification apps.
One great example is Boxcar (http://boxcar.io/).
You can have your web app send notifications via their API and have them delivered to the app. Lastly, you can the use deeplinks in your message to open your webapp to point the user to the content item you wanted to bring their attention to.
No, it's not possible. It's only for cocoa touch (AppStore) apps. If you want more info, take a look on the documentation.
another alternative: use an sms service like http://www.smstrade.de/ to send an sms to the user's phone. That's the way I do it.
Another provider for sending sms as notification is https://bulktrade.de
There works world wide
You can use HTML5 to introduce your own push messages. From wikipedia
"For the client side, WebSocket was to be implemented in Firefox 4,
Google Chrome 4, Opera 11, and Safari 5, as well as the mobile version
of Safari in iOS 4.2.1 Also the BlackBerry Browser in OS7 supports
WebSockets."
To do this, you need your own provider server to push the messages to the clients. If you want to use APN (Apple Push Notification), you must have a native application which must be downloaded through the App Store.
From iOS 6.0 I noticed that a WebApp icon placed on homescreen automaticly refreshes after each webkit open of webapp. Of course if you change this icon on the webserver. So theoretically you can display any informative content in this icon(numbers, status etc) BUT it will not refreshes instantly - only after opening and closing a webkit webapp.

iPhone: How to Programmatically Respond to SMS Messages

After a review of the iPhone SDK documentation, I have not yet found a way for an application to be written such that it can programmatically process the content of an incoming SMS message within the iPhone platform. The idea would be for such an application to be running in the background and based on specifically formatted SMS messages would be able to take specific actions.
Does anybody know if this is possible with an iPhone SDK application and if so, provide a pointer to information about how this can be done?
Unfortunately, you cannot intercept - or be notified of - incoming SMS messages with the iPhone SDK.
One possible alternative, is to register a custom URL scheme that launches your application when a url with that scheme is embedded in the sms message and the user cicks on it.
to set a custom url scheme, you must implement both the CFBundleURLSchemes and CFBundleURLName keys in your application's info.plist.
In your Application's delegate, you can then implement the application:handleOpenURL: method to get any paramaters that were passed to your App from the url in the SMS message.
I believe that currently the SDK doesn't allow for background apps (except for apple ones).
BREW and J2ME had (and probably still have) ways to launch your app via specially formatted SMS, which may be what the Jeff is referring to.
Apple does have the upcoming Push Server which will allow you to send the user an alert which will give them the option of launching your app, but you cannot launch your app for them.
Unfortunately just registering an URL scheme dosn't help you at all, because the SMS app makes "http://" urls clickable only...
You can use CoreTelephony framework.But you must user some private api.And I have some demo code for this. https://github.com/edison0951/AppNotifyBySMSDemo