I have an angular/ionic website that has registration, login, and dashboard pages. I want to build an android & ios app with the same code base.
When users download the app from the play store, if I add a new page/make a change to the existing page I have to submit the app for review, and then it will show the option for the update. Also, the user may not update the app. I want to show the latest changes to users as soon as I am ready with the update.
To achieve this I have followed the below steps:
1.I have built and deployed a web app(without native code). Let's call it xyz.com
2.I created a new ionic project for the APK file. I have placed an iframe with src=xyz.com
When I take the APK build of a new project, because of the iframe tag I can see the complete web app loaded. Whenever I make changes to the main web app project, after deploying to xyz.com just reopening the mobile app I can see the latest changes.
3.I have to read OTP during user login. So, after validation of user credentials in the web app, the next step is to enter the OTP. Now I have sent the event from the web app to the parent window(mobile app) like this:
window.parent.postMessage('ReadSMS','*')
In the mobile app, I listened to events from the website loaded in iframe like this:
window.addEventListener('message', handleMessage, false);
function handleMessage(event) {
if(event.data === 'ReadSMS'){
// Start native plugin cordova-plugin-sms-receive to read incoming sms
// After reading the SMS it is sent to the web app(in iframe)
myIframe.contentWindow.postMessage('SMSResult', '*',{OTP:otpfromsms});
}
}
In the web app, I listen to the events sent from the mobile app and auto-populate the OTP in the input box.
With the above iframe approach, users can use the new pages/bug fixes without updating the mobile app from the play store.
Since I use very less native plugins and they are not changed frequently. If I make any native code changes, then users have to update the app from play store, I am ok with that.
We have a tool called Ionic Appflow which has Live Update feature lets you update the UI and business logic of your app remotely, in real-time. Push HTML, JS, and CSS updates directly to your users without going through the app store to instantly fix bugs and ship new features.
The ionic Appflows is a paid tool and we can't afford it. However, I'm able to achieve live update feature and native functionality with just iframe and window message events.
Is there any disadvantage in the approach I have taken? Will, there be a problem while getting approval for listing my mobile app in the android play store and ios app store?
Can somebody please tell me the cons of the approach I have followed.
Thank You
Related
I have a Flutter app and i need to detect the url that originated the app download in the stores. On android, i send firebase dynamic link X to some user, he opens it, the OS tries to open the app if installed or redirects to a landing page if not. Then in this page there is a link to Play store. If he downloads it, on first run the app detects correctly that it was launched from link X. So far, so good. For android, all i need to do is upload a test version of my app to play store and set my user as tester, so when the store link is opened, it shows the internal testing version instead of the production one. The problem is: on ios, i have not found a way to link directly to a test version on App store (everythng is handled inside test flight app), so i´m unable to test the whole process. Is there a way to replace the store link app with a test version for specific users?
I just finished making an android app and i want to upload it to my website so users can download it. The problem is that i don't want them to be able to share the application, so in order to install the app they must purchase the app and get a key from me.
Is it possible? If it's not, is there any other way for making sure that only users who purchase the app can use it?
BTW, the app doesn't have any web service or online features.
I have implemented Deep linking into my App: when the app is installed in the phone, it will open the app, else clicking on the browser it will redirect to the Google Play Store and give user the option to download the app.
My requirement is something like, when the user after clicking on the link gets redirected to Google Play Store and downloads the app, after successful installation of the app, the app should identify the URL from which it got redirected to the play store. I want to know whether it can be done via reading the intent or any other procedure is available to identify the same.
What you're describing is called Deferred Deep Linking (Deep Linking refers to using a link to open your app directly to a specific piece of content, and Deferred means that it works even if the app isn't installed first).
Unfortunately there's no native way to accomplish this on either iOS or Android. The Google Play INSTALL_REFERRER could work in theory, but it's unreliable and often gets delivered too late (i.e., seconds to minutes of waiting) to provide a good UX. URL schemes don't work, because they always fail with an error if the app isn't installed. Universal Links in iOS 9+ and App Links on Android 6+ at least don't trigger an error if the app isn't installed, but you'd still have to handle redirecting the user from your website to the App Store. You still can't pass context through to the app after install with Universal Links and App Links, so you wouldn't be able to send the user to the correct item.
To make this work, you need a remote server to close the loop. You can build this yourself, but you really shouldn't for a lot of reasons, not the least of which being you have more important things to do. A free service like Branch.io (full disclosure: they're so awesome I work with them) or Firebase Dynamic Links can handle all of this for you.
you can use FCM deep linking check this link dynamic-links
We currently developing an app for two platforms, iOS and Android. The development state of the iOs app is more advanced than the state of the Android app. We need facebook for authentication and we also want the “publish_actions” permission to post open graph actions on the users wall.
For our iOs app we reached a level were we want to submit for review. Unfortunately this is not true for the android app.
As far as we know we have to remove the android platform from the Settings (https://developers.facebook.com/apps//settings/) if don’t want that facebook review it. But if we do this our android developers are not able to use the facebook authentication and therefore they can not work on the app in a proper way.
Our question: is there a way to submit for review for iOs only without losing the possibility to develop the android app? Or should we send our "not ready" android app to facebook review?
So, we found a working answer by ourselves.
On the facebook developers website we added a new app. There you can choose if this app should be a test version of an existing app. If you say yes, you get a ready test version of your existing app.
After that you have to direct you “development versions” of your app to the new app id etc and do not forget to test it. For example in ios you have to set FacebookAppID and the URL Schemes to the new AppId and AppName.
If it works you can remove your “not ready for submission” platforms from the settings of your normal app (not the test version) and submit for login review.
I had been working on dropbox enabling an application and when the person elected to connect to Dropbox, the authentication process launched an intent within the app, once the window popped I was able to accept the access and the app resumed as usual and everything was great.
Something changed when I turned the code over for implementation such that now when I elect to connect to Dropbox, the app instead launches a webpage for authentication instead of the intent. Also, the "resume" is not called in the application after I authorize the app to dropbox.
I have looked in the usual places but have been unable to determine why this has changed.. Thoughts??
Did you recently pick up an updated version of the Dropbox SDK? There was a recent update which uses an improved authorization flow. If your app is using the new flow, and you don't yet have a version of the Dropbox Android app which supports that flow, then your API app will fall back to using browser-based authorization. This should go away once the Dropbox Android app is updated in Google Play.
The web-auth flow should still return control to your app in the same way as the delegated-auth flow. If you're seeing issues there, you should get in touch with Dropbox support. You can submit a ticket using the "API Support" link on dropbox.com/developers