forge.tabs tab closed on iOS when app is send to background - iphone

We are using trigger.io (2.1.0) in our mobile app and are opening the LinkedIn OAUTH dialog in a forge.tabs window (using forge.tabs 2.6).
LinkedIn sends Authorisation Mails to Users when they authorise an app for the first time and the user has to enter an authorisation code he received via email in the view we opened in the forge.tab.
Unfortunately the tab in which we show the dialog is closed on iOS (iOS 7.0.4 here) when the app is sent to the background when the user switches to his mail app to get the code.
The user returns to the app and can't enter the code he just received. If he reopens the linked in authorisation dialog the code he just copied is not valid anymore (he is sent a new one).
How do we prevent the tab from being closed when the app is sent to the background?
Best regards,
Richard

Official fix is in launchimage v2.3
Thank you to everyone who contributed to this question.

We found the offender: The trigger launch image module seems to interfere with the trigger tabs module.
We stripped the project down to the last bits (load the tabs module only) and ended up with a plain html file which opens a trigger forge.tab when you click on a button.
Here the tab will persist even if you send the app to the background.
We found out that the trigger launch image module causes this behaviour - as soon as you add the module the trigger tabs vanish when the app is backgrounded.
We can confirm that the launch image module closes all modal dialogs when the app is backgrounded - we forked the module and will try to fix it.

As long as you want to use the launchimage module, the Trigger.io tab will always close when the app loses focus. See Richard's answer for more information.
A good workaround is to use Mobile Safari for the authentication process. After the authentication is finished you can make use of Trigger.io's URL scheme module to forward the user back to your app automatically.
Positive side-effect: the user might already be logged in on his Mobile Safari.

Related

Chrome Packaged Apps: Opening another app

I am wondering whether there is any JS API to start another chrome app on button click event in a chrome packaged app.
As a general rule, no, you can't invoke another app.
However, if you control both apps, you can set the second app to expect an external message.
You can add chrome.runtime.onMessageExternal listener to the second app's event page script, and send a message with the app ID from the first to wake the second app and launch the app window. See this for more details.
In general, an extension can do this task and more thanks to the management API. It is, however, unavailable for Apps as of now.
Feature request to add this API for apps: #455550

Showing custom popup in safari if app is not installed

I have written code in iOS for launching my app from a custom url in safari and it all works well as long as my app is installed. But if it is not installed then safari shows a popup saying it cannot open the page because the address is invalid. However, my stop page still opens up in the background prompting the user to app's link on app store.
My question is, how do i change this popup to show a custom message instead, a message that can relate to the stop page im displaying.

Return to app from safari

In my application, I redirect the user to the safari browser when he/she taps on a button, which in turn closes the application and opens the safari browser. There is no problem in that. It works fine. The thing is when the user quits the safari browser, I want to redirect the user back to the application, not the home screen. Any idea please...
If you control the website that you are redirecting them to, then you can place a link on the site using custom URL which I describe in more details below. But if it's a site you don't control, you can have the user surf within your app using the UIWebView.
For an iOS app, you can create custom URL schemes that your app register with the system. Then on the web page you would create a link using that custom URL. That is how Apple launches the telephone.app or the mail.app from mobile safari.
For example: Let say your app is call BigBadApp. You custom URL would be: bigbadapp:// Now, you could create a link to your app would be: Launch BigBadApp You can pass any kind of information back to your app using the custom URL and your app will handle that information in the app delegate. For iOS 4.2 and later: application:openURL:sourceApplication:annotation:. The name of old delegate on earlier version of iOS is application:handleOpenURL:
For more information see check Apple Implementing Custom URL Schemes.
Also iOS developer:tips has a tutorial on Launching Your Own Application via a Custom URL Scheme.
You can't. When you redirect someone out of your application the only way to get back is using the task switcher or opening your application from the home screen again.
If you want to keep the user in your application you could open the web pages in a webview within your application
use UIwebViewController . that represent web link within app . so that your app wont be in back ground and add back button in navigation bar on click back button navigate to back screen . i guess it would be better
i would launch an in app browser...
this is a good uiviewcontroller subclass that has most of the browser functions already implemented. its very easy to use.
https://github.com/samvermette/SVWebViewController

iPhone Notifications is possible to

I read more post regarding iPhone notification, and I have a simple question....
Where a device receive a notification (so I can display a message contains the message notificatio ti advise the user).
I understand that message is managed by the application.
The question is:
...when my application receive the notification is it possible to start it?
Or in other world the application became run when receive the notification or it simple became active only to manage the message and at the end of notification management the app return to sleep?
The main application windows is opened on the device ?
Many thanks in advance
Lukenukem
Ciao
With push notifications you can prompt the user to take action, which if they agree (by tapping the "open application" button), will open the application automatically.
The caveat is that you can't do this without the users consent. They have to tap the open application button for your app to open. There's no way to open the app automatically without the user's action, nor is there any way to open, perform the required actions and quit the app automatically.
The apps dont "sleep" they are either running or not (till 4.0 OS that is), im assuming you are asking about push notification, what happens when a user receives a notification is that they can choose to close it, or go ahead and "view" the notification which can cause the app to open automatically...thats as far is it goes in the current system i blive...

Attach XCode Debugger

I'm developing an iPhone app that needs a web login.
As usual I call
[[UIApplication sharedApplication] openURL:loginURL];
This close the app and calls the login page inside Safari.
Once logged, the app is opened once again using a callback address and the iPhone URL registration feature.
The question here is:
Since the app is closed when I call Safari, the debug stops. How can I continue the debug?
Thanks
You can, however, get XCode to connect to an application the next time it's launched. You bring up the inspector on your executable and check the "Wait for next launch/push notification" box. This is explained in more detail here.
The other alternative would be to use a UIWebView inside your app rather than switching to Safari.