What API controls these quick links?
Spotlight your app with App Shortcuts - WWDC23 - Videos - Apple Developer

Discover how to use App Shortcuts to surface frequently used features from your app in Spotlight or through Siri. Find out how to...

Apple Developer
@brandonhorst @caseyliss I don't know - my app uses AppShortcuts, but it doesn't look like Amazon’s. When looking at this view, it seems like they have a single 'Open Amazon' OpenIntent, with different parameters applied, and somehow stylized.

@matt1corey @brandonhorst @caseyliss It is App Shortcuts, and they've taken the Open action & made parameterized instances of it with App Shortcuts.

This is a combination of parameterized phrases from the first year of App Shortcuts & the Spotlight integration from the second year.

Here's where they start to talk about it: https://developer.apple.com/wwdc22/10170?time=851 Then the rest is in Brandon's linked video.

You can also use Suggested Entities to show nicely-designed entities in Spotlight as well

Implement App Shortcuts with App Intents - WWDC22 - Videos - Apple Developer

Discover how you can create Shortcuts in your app with zero user setup. We'll show you how App Intents can help you present custom...

Apple Developer
@matthewcassinelli @matt1corey @brandonhorst Granted I've only been looking at this for ten minutes, but I'm having trouble figuring out how to write an Intent that basically just deep-links into the app…? I just watched that section of the video — thank you! — but I don't think I'm grokking how to just open the app.
OpenURLIntent | Apple Developer Documentation

An app intent that opens a universal link.

Apple Developer Documentation
@caseyliss @matthewcassinelli @matt1corey Haha looks like you beat me by 6 seconds.
@brandonhorst @matthewcassinelli @matt1corey Although that looks like it requires a web endpoint, which Callsheet doesn't have 😩
@caseyliss @matthewcassinelli @matt1corey It doesn’t! You can use `onOpenURL` to handle it directly from SwiftUI. I think you may also need `.handlesExternalEvents` and an Info.plist param to support a custom url sceheme.
OpenURLIntent | Apple Developer Documentation

An app intent that opens a universal link.

Apple Developer Documentation
@caseyliss @matthewcassinelli @matt1corey Oh wow, I think that line (and enforcement) was added in some recent beta. It definitely worked at one point in this beta cycle, but it is indeed failing for me now. Wicked bummer.
@brandonhorst @caseyliss @matt1corey There's been a couple other threads about this, it seems like it wasn't intentional that it was possible and isn't allowed. Probably because they can't validate the destination, and URL schemes are a major vector for security issues
@matthewcassinelli @brandonhorst @caseyliss Universal Links are a pain to setup, but once I did it, I find plenty of use for them, including In-App events
@matt1corey @matthewcassinelli @brandonhorst Honestly I really need to set up some sort of web front-end for universal links but I **so very much** do **not** want to run any sort of web server
@caseyliss @matt1corey @brandonhorst Universal Links to every intent and entity are going to be wild. Beyond everything else this year, the impact of that is so intriguing to me

@caseyliss don't you already have 2-12 or so Rasberry Pis hosting various things out of your house? I know there's a scale difference between 4 people hitting a PiHole versus a few thousand reading an associated domains file, but technically speaking not that different of a problem to solve.

@matt1corey @matthewcassinelli @brandonhorst

@caseyliss @matthewcassinelli @brandonhorst For sure - my website is hosted on SquareSpace, but to enable UniversalLinks, I had to jump through hoops to get the apple-app-site-association file hosted through S3 on Amazon.

So I guess I'm technically still not running a web server to do this? 🤣

(I have a terribly written and unpublished blog post I can share for this, if it applies)

@matt1corey @caseyliss @brandonhorst Matt please do, any and all App Intents blog posts are extremely useful resources because every developer is going through this
@matthewcassinelli It's coming, for sure - just need to take the time to clean it up.

@matt1corey @matthewcassinelli I just finished finally properly implementing universal links 😅 it was a wild ride

Haha typos 😅

Using AWS to host Universal Links for iOS - Luigi M - Medium

Hello everyone. It’s been a while, but I decided it’s about that time to start making some more blog posts about iOS! Should be a lot more to come in the future. At any rate I’ve recently been…

Medium

@colin @caseyliss @matthewcassinelli @brandonhorst This is basically it, but on a quick scan, it looks like the website itself is hosted from the S3 bucket.

I didn't want to host my own website, or have to completely redesign and build it - I was already in SquareSpace. For me, only the aasa file is hosted from S3, and CloudFront routes traffic between S3 or SquareSpace, depending on the URL.

@caseyliss CloudFront+S3+Lambda. No “servers” to manage and in fact you can probably just use CF+S3 and call it a day if you don’t need any “logic” to run. The CF can redirect all requests to an index.html that just advertises CallSheet and with Universal Links people using your app will just bounce to the app. You could even redirect to your provider (TVDB? TMDB?) in the html if for when they don’t have the app or offer a link to either get the app or go to your data provider.
@caseyliss @matt1corey @matthewcassinelli @brandonhorst Late to this but you don’t really need a server, just a domain. What I do is have a Cloudflare worker that is just a JSON blob, and if it doesn't hit one of my configured routes, it will redirect to the website. It's like 10 lines of code, very little setup, and no maintenance, can share later if that sounds appealing.
@mergesort @caseyliss @matt1corey @matthewcassinelli @brandonhorst I'd appreciate something like this! There was something on GitHub where they were “intercepting” the deep links (mentioned above) & routing locally, but I suppose that's no longer possible. Interesting!
@matthewcassinelli @caseyliss @matt1corey @brandonhorst @kylebshr Here's the entirety of the Cloudflare worker.js I use for Plinky. It's very straightforward — one place to manage all of my redirects and universal links in a way that's easy to edit and update, no servers needed and nothing needed to learn for when someone wants to add a route or new universal link. https://gist.github.com/mergesort/60a78f5c20a99849642e5a2f608cfe9e
Cloudflare Redirects/Universal Links

Cloudflare Redirects/Universal Links. GitHub Gist: instantly share code, notes, and snippets.

Gist