Following on Delegated authentication for Discourse Mobile app, we have been working on a new version of the DiscourseHub app for iOS. This new version includes several under-the-hood changes that fix some longstanding issues with the iOS app. You can try out this new version right now, by opening the link below in your iOS device and installing the app via TestFlight:
New version notes
There are two major changes in the new version of the app:
- the app uses Safari for authentication
- SafariViewController has now been replaced by a webview
The first change means that authentication in the app is now easier and better integrated with iOS. Users will now be able to leverage saved passwords, existing SSO sessions or login via email when authenticating a site in the app. But this change also means that users will need to login again to all the sites they’ve already configured in their app. This is a one-time requirement. (If the user is already logged in in Safari, then he/she will only need to authorize the app’s API access.)
A few other improvements included in this beta version:
- push notification handling has been strengthened: users will now see notification badges when receiving a push notification while the app is in the foreground
- sessions from the app are now correctly identified as such in Discourse under the “Recently Used Devices” section of the user’s profile
- in the webview, we have introduced a new navigation bar. On iPhones, this bar is at the bottom and auto-hides (like Safari’s nav bar), on iPads it is static and placed at the top of the viewport. The bar’s styling will automatically use the color scheme of the active theme.
- the app will now check for changes to a site’s API version and logo regularly, thus making sure changes in branding and Discourse API updates are reflected in the app (and it also fixes an issue with disappearing logos)
To test these new features, your Discourse sites must be on the latest tests-passed branch or on the latest beta (v2.3.0.beta9). Any sites that haven’t been updated recently will fall back to the legacy authentication and SafariViewController in the app.