Will an iOS app that only opens a UIWebView and uses push notification get rejected from apple? - ios

I am developing an application that does exactly 2 things.
1) Opens a UIWebView
2) Uses push notification
I am opening a UIWebView where i load an external URL , and there the user can subscribe to various kinds of events. After he subscribes he can get push notifications about them.
I am asking because some people told me that their apps got rejected when they were just loading an external URL , because apple said it could better be a web page and not an iOS app.
But in my case where i use push notifications? Does it count differently?

The reason why WebView only apps are beeng rejected is because they dont use any of the features that the framework is offering. I got in an application that had only one view for log in, and after log in, the response was URL from server that I was showing in WebView.
You will never know unless you try, but I think it will get in.

I have successfully submitted 3 apps which are all WebViews but with Push Notification functionality. As long as you have Push Notifications in your app you will meet the guidelines of having framework dependant features in your app rather than just being a simple WebView in a mobile app.

"Your app did not include iOS features. App Store apps should use native iOS buttons and include iOS features other than just web views, push notifications, or sharing."
source: Apple rejecting Ionic apps, date: Jan, 2019
“Your app provides a limited user experience as it is not sufficiently different from a mobile browsing experience. Specifically, we notice that most of the app content links out to Safari. As such, the experience it provides is similar to the general experience of using Safari. Including iOS features such as push notifications, Core Location, and sharing do not provide a robust enough experience to be appropriate for the App Store. … the App Store does not accept or distribute web apps.”
source: App Store Rejection 4.2 - Design: Minimum Functionality, date: Dec 2020, But seems it was resolved.
Conclusion: YMMV = Your Mileage May Vary.

Related

UPI Intent in iOS - stuck

I'm trying to integrate UPI intent in webview for my ecommerce app with Cashfree Payments. While the Android device does not have problem in switching back to my app from the Gpay or any PSP app the same does not work with iOS. After being taken to payment app and completing the payment, it stays there without coming back automatically. Tested with multiple devices but no use. Any suggestions would help. Thanks
Tried: multiple devices with iOS 15 and 16
Expected: TO switch back to my app after payment completing instead of me doing it manually.
The redirection will not happen on it's own as there is a complete navigation to PSP app and we have to come back to caller app manually. That's the expected behaviour
As per the behaviour of iOS platform, the redirections from PSP apps to the primary app is not allow automatically (App switching) but the forward is supported.
This is not with any particular PSP app but global. Even Google's G-Pay Documentation has it mentioned.
Screenshot from Gpay
https://developers.google.com/pay/india/api/ios/in-app-payments
Whereas in Android this is not the case and both TO&FRO switching is allowed between User app and PSP App.

Programmatically get application usage from Screen Time in iOS 12

I am working on one project and I want to get other application usage time. apple has launched iOS 12 and provides the new feature Screen Time. I want to know is there any way or API provided by Apple to get data from it.
No, on iOS each app runs in its own sandbox and cannot see data from other apps, even apps from the same publisher. An app can access special shared data, like photos from the album or contact data, but it is not possible for an app to directly access files written by other apps.
ScreenTime application is on another sandbox than your app. Unless apple provide API we can't access the same.
Update
Since apple have added screen time app into ios12 simulator. There could be a chance they provide the API's soon.
On iOS 15 Apple has added an API, see here:
https://developer.apple.com/documentation/FamilyControls
FamilyControls
Authorize your app to provide parental controls on a
child’s device. To authorize your parental controls app, use a shared
AuthorizationCenter instance. You can authorize parental controls only
on a device that is part of a Family Sharing group and signed into a
child’s iCloud account.
You must add the Family Controls capability to your app.
This seems to provide functionality to parental control apps only. In other words, it cannot be used by other time-tracking or productivity apps at the moment.

Using Universal Links for DeepLinking in Push Notifications on iOS

I am investigating using Universal Links in Push Notifications for Deep Linking into an iOS app. This is so I can future-proof for web.
A lot of the examples and tutorials assume the user will select a universal link from a web-site to deep link into an app.
I want to use Universal Links in Push Notifications instead of the regular URL Schema approach.
I have read the Apple docs
https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html
However, I am unclear on at this point if I am just using the Universal Link to open the App via a Push Notification, do I still need to set up all the configurations such as creating and uploading an apple-app-site-association file to the root of the web server.
Is this approach to using Universal Links in Push Notifications to Deep Link into an area of the app a recommended approach since Apple seems to be discouraging the use of URL Schema's in general or are Push Notifications a special case?
Push Notifications and Universal Links are two different animals although they both serve to get the user into the application.
With a Universal Link, Safari on the iOS device is opened first in case the app isn't installed. If the app is present, the user is immediately bounced to the app from Safari with the URL passed to the AppDelegate method application(_:continue:restorationHandler:). If the app isn't present, Safari opens the URL of the Universal Link. Setting up the apple-app-site-association file is necessary here to validate that you own the destination URL in question and can redirect users from the web site to the app instead. Universal Links are better for user-initiated interaction (clicking a link in an email, etc.)
Push notifications on the other hand communicate directly with the device over TCP/IP to pass the message from APNs to the iOS device (see APNs Overview for more info). Safari isn't involved and the user taps the notification on the iOS device (for example) to open the notification and go to the destination. Your destination isn't passed by URL like with Universal/deep links, but with extra JSON in the notification payload that you can process in your app (see Creating the JSON Dictionary for this structure). There is no apple-app-site-association with push notifications as there is no web site involved. You are communicating directly from APNs to your app and using certificates typically to ensure that only you can open your app with a push notification. Remote push notifications are great for developer-initiated interaction to engage the user.
Hope that helps clarify things!

MFMessageComposeViewController use for charity donation through SMS

I faced App Store rejection recently based on the following review guideline- "The collection of donations must be done via a web site in Safari or an SMS".
I was opening the PayPal link in a web browser control instead of the native Safari app which I have corrected now. But my app also has an option to donate through SMS where I have used MFMessageComposeViewController.
Will it be approved by App Store as I am using MFMessageComposeViewController instead of redirecting user to the native SMS app?
As per my understanding MFMessageComposeViewController is also a safe way and can not be modified once presented. Please let me know what do you think about this problem and share you experiences. I dont want to face the rejection again.

Can my iPhone app register to receive push notifications meant for another app?

This may be a pretty basic question, but here goes. I develop an iPhone app that is a third-party client for a popular webapp. This webapp has it's own iPhone app to which it publishes push notifications. Is it possible for my app to register to receive push notificatons Sent by the webapp and intended for the webapp's native iPhone app? Or is this prevented by certificate magic as I suspect?
Apple allow you to have apps with either a generic app ID in the format:
12345678.*
Or an explicit app ID in the format:
12345678.com.myCompanyName.myAppName
However, they only allow applications with explicit app IDs to register for APN (Apple Push Notification) Service. Therefore it is not possible for more than one specific iPhone app to receive the same notification.
As Farcaller says, this is not a technical limitation but an imposed one.
Hope that helps
From the technical point of view, you can register at another server with device token. You just need to know, where to register and what protocol does it use. Still you wouldn't be able to receive notifications, as they are routed depending on the application id, and you can't mimic that.

Resources