We now support a new style of deep linking to specific content in your Pugpig app. This works via the Pugpig Distribution Service with our universal Share URLs inside native iOS and Android apps. We also still support the old style URL schema deep linking as well as new style iOS Universal Links and Associated domains.
Available in Pugpig iOS 1.7.0+ / Android 1.7.1+.
On iOS we have added support for Universal Links.
Below are notes we have gathered from our development and testing. Any configuration needed in the app or distribution service will be covered by Kaldor as part of your Pugpig Starter Pack.
Deep Linking in iOS
You need the following:
- iOS 9+ device with correctly-built app installed
- Distribution page link needs to be published in the feed
- Distribution page link opened from a push notification or other source like Email or Slack
- Distribution config:
- app_id_prefix - see Apple Developer portal
- bundle_id - set in Apple Developer portal
- 'share_to_distribution' => true
- 'live_webreader' => true
- iTunes addon with:
- When all the above config has been added to Distribution you need to go to 'iTunes Store' add-on and 'Update app statistics'. You also need to then go to your feed and 'Update feed' for changes to take effect.
- In Distribution under Content Source > Main Feed, find the More Information box and expand it. You should see the appropriate 'Apple app-site association' label alongside 'Settings' like this:
IMPORTANT: this 'Apple app-site association' file is linked and should load a page with appropriate config. If you see a 404 error you need to update your iTunes add-on and content. - App config:
- Bundle ID matches what is set in Distribution
- OPDS endpoint (in config.plist) domain needs to match shared/deep link page URL domain. Both need to be HTTPS
- Project.properties file needs 'pp_enable_universal_links=true'
(everything else is handled in Kaldor's automated build system) - Apple iOS profiles need to be generated with Associated Domains (enable first in the App ID section then regenerate profiles) and need to match the App ID Prefix set in Distribution
- Note: When pp_enable_universal_links is set to True, the app can only be built with adhoc or developer associated domain enabled profiles. It can not be built with Enterprise profiles unless you disabled deep linking, for that reason we'll usually configure near the end of the setup of your Pugpig app before you submit.
Deep Linking in Android
You need the following:
- Android M + device with correctly built app installed
- Distribution page link needs to be published in the feed
- Distribution page link opened from a source like Email, Slack, (sent from Push is not supported yet, see notes on this further down)
- Distribution config:
- 'share_to_webreader' => true
- 'live_webreader' => true
- Google addon with:
- package_name - see Google Play portal
- public_key - see Google Play portal
- sha256_cert_fingerprints - printed by Kaldors build system when you build .apk.
- App config:
- Package name matches what is set in Distribution
- OPDS endpoint (in config.plist) domain needs to match shared/deep link page URL domain. Both need to be HTTPS
- Project.properties file needs 'pp_enable_universal_links=true' (everything else is handled in Kaldor's automated build system)
- Android key sign profiles need to be match whats set in Distribution
Deep linking from Push
Each push provider needs to be configured to support sending a deep link push message to Pugpig apps. We support deep-linking from Braze (formerly AppBoy), Urban Airship and Firebase.
NOTES
- Deep linking to draft content won't work - it needs to be published in the live feed (it not working is fine/expected).
- There is a known bug where app doesn't handle a deep link to Draft Paid edition - you are presented with the edition and a download button that doesn't respond.
- Caching issues: apparently if you view an app on a device before the deep linking stuff is all set up and deployed in distribution, it can cache on the device for 24 hours or so. This means that even if everything is all correct in distribution, the deep links won't work properly (on that device). But if you try on a different device that hasn't had these problems, it will be fine. Just something to be aware of.
- Apps remembers how you've opened links before on iOS and Android. So if you've chosen to open links with the native app, it should continue to open links with the native app without asking you again but if you didn't prior then you might have issues.
Comments
0 comments
Please sign in to leave a comment.