Do Twitter cards work with universal links/ + deep linking? - twitter

I hear that universal links are more secure than the application URLs and want to exclusively use iOS Universal Links.
The Twitter Card documentation seems to only emphasize app links.
Can I use deep linking with Universal Links in Twitter Cards?

I'm not quite sure what you mean by 'secure', because both Universal Links and URI schemes result in the app launching directly in response to a user action on the local device. Perhaps you mean that Universal Links solve the potential issue where the URI scheme of a popular app is hijacked by unscrupulous characters?
In any case, Universal Links and Twitter Cards currently don't play nicely together. Universal Links are handled at the OS level, which means Twitter wouldn't be able to do any sort of tracking and attribution on those events. Instead, they use URI schemes to open the app and manually handle the fallback behavior for when the app isn't installed.
You can find a partial list of apps that currently support Universal Links here

Related

Does Google Search App block universal links

I am implementing Firebase App Indexing as mentioned in official firebase documentation here: https://firebase.google.com/docs/app-indexing/ios/app.
The universal links are enabled and work fine for search results from different browsers like Safari and Chrome. They also work for other applications. But when I tap on a search result from the Google Search App in iOS. It does not take me to my app. Also on long pressing a link in the Google app does not provide an option to open link using my App. This option is however shown when I long press on links from other applications.
Does it have something to do with the Google Search app disabling the universal links deliberately. Is it possible for individual applications to prevent Universal Links from opening other applications?
Or does Apple apply restrictions itself for certain apps?
Indeed, some apps disable the capability of deep linking using Universal Links. Some notable examples: Facebook, Instagram.
Some of these apps allow deep linking via URI schemes (the old iOS 9- way of deep linking), but there is no promise that this behaviour will be persisted.
I'm guessing most of these apps would like to have the user stay within their own in-app browser instead of switching to another app.
I never tried the Google Search app, but if your universal link works perfectly in Safari and not in the Google Search app, that may be the case. In that scenario you'll need your click domain server to redirect the user to the store or some landing page, based on the User Agent of the incoming browser.

Is it possible to use Facebook App Links with email and pass through App Store install?

I am planning to use app link from FBSDK to invite using my iOS app via email.
I know if my iOS app was installed on the device it will be opened when I select the link and handle invite token in URL.
But how about if my app was not installed?
After user install it from App Store can I handle invite token also?
Hope anyone used to work with this scenario can help me.
There are a lot of reasons why what you're trying to do won't come out the way you want it to. Let's dive in...
App Links don't work anymore
Facebook created App Links in 2014 as an open standard to solve the limitations of URI scheme deep links. App Links have two main components:
A set of meta tags to add to the web page destination of a standard http:// link. These tags specify the custom URI scheme location of corresponding content inside the native app, and the behavior that should occur if the app is not installed.
A routing engine for use inside apps that support opening links. This engine checks the destination URL for App Links tags before opening it, and then launches the corresponding app or executes the specified fallback behavior.
App Links were supposed to be an open-source standard to change the world, making app-to-app deep linking simple and universal. Unfortunately Facebook has decided they actually don't want that world (it's much better for them to keep users inside the Facebook app — see Instant Articles if you don't believe me), meaning the App Links standard is essentially dead. It's no longer supported on the iOS Facebook app, and Applinks.org isn't even a separate website now.
App Links were not designed to work with email (or essentially any app except Facebook)
Even if it were still supported by Facebook, the App Links standard has a critical flaw: it requires work by both the origin and destination apps. While the meta tags component saw wide adoption, the only major implementations of the routing engine were in the core Facebook and Messenger apps.
To function as you want, where deep linking can occur from links in emails, the routing engine component would need to be implemented in any email app where your link could possibly be clicked. This was never going to happen for apps like the default iOS Mail app from Apple, or the Gmail app, for example.
App Links had no meaningful support for deferred deep linking
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) requires 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. You'll notice that neither of the two App Links components included a remove server to retain link data through install, so deferred deep linking was never properly supported in the core App Links standard. Facebook ads make use of the partial support for deferred deep linking offered by the FBSDK in conjunction with App Links, but this only works when the link/ad is clicked within a Facebook app and the receiving app has the FBSDK integrated.
Deferred deep linking is tough anyway
Moving on from App Links, deferred deep linking is still complicated. URL schemes don't work, because they always fail with an error if the app isn't installed. Apple's newer Universal Links in iOS 9+ get closer in that they 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 can't pass context through to the app after install with Universal Links, so you wouldn't be able to send the user to the correct item, and they actually aren't supported in a lot of places.
Deep linking out of email on iOS is very hard
Almost all email links involve some sort of click tracking, which is always implemented as a link wrapping redirect. This isn't technically a problem if the user doesn't have your app installed, but if they do, Universal Links don't work with wrapped links. If you're building it yourself, you'll either need to completely disable click tracking in your emails, or accept that deep links won't work there.
Bottom Line
App Links were never the solution you needed. A free service like Branch.io (full disclosure: they're so awesome I work with them) or Firebase Dynamic Links is what you need. Both services support deferred deep linking, out of Facebook or almost any email app. Branch is more powerful and offers far more features, and works with major email senders to offer a solution for deep linked email (the only one on the market today).

Branch.io link opens the installed app from twitter shared link only.It used to work with facebook and email,but no more

I have deep link generated using branch.io shared to twitter, email and Facebook.But clicking on the links in respective social networks works only in twitter, which opens the installed application.Facebook and email are not opening my application installed.Please help.
I'm adding a note here for any who may coming across this ticket while researching similar issues.
Branch links are intended to open their associated apps when the app is installed on a device - or to redirect the user to the app's page on the App or Play Store if the app is not installed. Unfortunately, there are certain applications that prevent Branch links from functioning as intended. Generally speaking, these tend to be apps employ captive webviews. Some apps, Slack for example, allow users to turn off captive webviews and use Chrome or Safari - which solves this issue. Other apps, like Facebook, do not have such a workaround.
Branch's current recommendation for partners using Branch links in Facebook posts is to leverage iOS Deepviews. When iOS Deepviews are enabled, clicking on a Branch link in the Facebook feed will open the Facebook webview with the Deepview. The CTA button in such Deepviews works properly as a Universal Link, opening the app or leading users to the App Store as appropriate. Link information from the original Branch link will be available to the app when opened in this fashion, and Branch attribution and analytics will also work properly. This is the most robust app linking experience that can currently be achieved from the Facebook feed. Although not ideal because of the introduction of an additional Deepview, every other option involves some type of tradeoff.
Branch Deepviews can be enabled at the app level (i.e. for all of the app's links), at the link level, or specifically for Facebook and/or Twitter. Note that enabling this last option (always showing Deepviews only when links are clicked from Facebook and/or Twitter) does require assistance from Branch - partners can reach out to them at: support#branch.io.
On iOS, problems with an app's Universal Linking configuration can also lead to issues like the one reported here and are extremely common. Branch has made a Universal Linking Validtor tool available to help identify and resolve issues with Universal Linking. This tool can be found here: https://dev.branch.io/getting-started/universal-linking-validator/guide/. A troubleshooting guide is also available, here: https://support.branch.io/solution/articles/6000153326-ios-universal-links-troubleshooting-guide.
As a general recommendation, test Branch links and ensure they are working properly from a standard app (like Notes on iOS) before testing in social media posts.

Opening an app from URL schema

This may sounds crazy but just curious to know how a deep link/ URL schema reaches to an app to open it up in the device. Searched for an article but all contain how to make it work technically which I completely experienced, but could not find one how the handshake works.
If anybody can share if known, much appreciated!
Thanks.
The best information I could find so far on the subject is Wikipedia:
Unlike the Web, where the underlying technology of HTTP and URLs allow
for deep linking by default, enabling deep linking on mobile apps
requires these apps be configured to properly handle a uniform
resource identifier (URI). Just like a URL is an address for a
website, a URI is the address for an app on a mobile device. Examples
of URIs that launch a mobile app:
twitter:// is the iOS URI to launch Twitter’s mobile app
YouTube:// is
the iOS URI to launch YouTube’s mobile app
The format of the URI used
to trigger or deep link an app is often different depending on the
mobile operating system. Android devices work through intents,
BlackBerry 10 devices works through BB10's invocation framework,
Firefox OS devices works through Web Activities, iOS devices works
through the openUrl application method, and Windows Phone 8 devices
works through the UriMapper class.
fb://profile/33138223345 is an example of a mobile deep link. The URI
contains all the information needed to launch directly into a
particular location within an app, in this case the profile with id
'33138223345', i.e. the Wikipedia page, within the Facebook app,
instead of simply launching the Facebook app fb://. eBay's apps
demonstrate the use of different schemes by platform.
eBay://launch?itm=360703170135 is the URI that deep links into eBay’s
iOS app while eBay://item/view?id=360703170135 links into eBay’s
Android app
Basically the URL matching starts at the OS level.
iOS will use the settings in your apps plist file for a whole bunch of other things outside the app. One of them being the deep linking.
You declare your URL scheme in the plist, and whenever the OS encounters a URL matching this scheme (usually when user taps a button or link), it will open your app and pass the URL information on. It's then your responsibility to determine what to do with this information.
Does it jump into a profile page? A particular product? That's all left up to you.

iOS 9 App links not working as intended with URL Shorterning

I followed iOS9 app links guide (here) and app links are working fine
i.e. Whenever i access http://www.domain-name.com/some_page it redirects to my application and handles it properly.
But if i shorten the exactly same URL then it launches Safari and fails to launch the application. am i missing some configuration?
No, unfortunately you cannot use URL shorteners or the the URL will no longer be recognized by iOS as a Universal Link. We at Branch (who wrote the blog you reference) have seen this a number of times in troubleshooting with our partners.
If you use an email provider that automatically shortens URLs, you'll need to disable this if you want links to work as Universal Links.

Resources