Hey all,

Quick background: iOS has no built-in intent system like Android. That
is, you cannot dispatch a generic "open a page URL" event to the
system, then have the OS present the user with a list of apps that can
handle the event. If you want to open another app from yours, you need
to explicitly specify that app.

Since that's all we can do, that's what we're working with. On the
Firefox end, we know exactly what it will look like: we'll register a
firefox:// URI handler that parses and loads the query URL whenever an
app launches it. To aid developers using this API, we have an
in-the-works external iOS project that these third-party devs can use.
Bryan-the-super-iOS-intern has made some progress on this already [1],
but we don't have a solid plan for exactly what the end result should
look like.

One approach is to create a simple reference project with sample code
that developers can copy/paste. This is also what Chrome does [2].
Another approach would be to build an actual API/SDK that developers
can import into their projects like other dependencies, using Carthage
or CocoaPods. This could make integration easier for users of the
existing Chrome API, especially if we can find a way to hook into that
API without adding any new code.

It's also worth mentioning that there's an existing third-party
library called IntentKit [3] that includes a number of application
schemes that can be triggered by certain actions (e.g. "open in
browser"). Essentially, it attempts to recreate Android's intent
system. Adding ourselves to this library will make us compatible with
existing projects that use it, so I've filed a bug for this once we
release v1 [4]. If we promote IntentKit as the recommended method for
adding browser support, our third-party project might not need to be
fleshed out as much since IntentKit does that grudge work for us.

Personally, I'm pushing for the IntentKit route, so I'm not as
concerned with creating and maintaining an SDK with dependency manager
support. I know there are other opinions, though!

Thanks,
Brian

[1] https://github.com/mozilla/firefox-ios-open-in-client
[2] https://github.com/GoogleChrome/OpenInChrome
[3] https://github.com/intentkit/IntentKit
[4] https://bugzilla.mozilla.org/show_bug.cgi?id=1180953
_______________________________________________
mobile-firefox-dev mailing list
mobile-firefox-dev@mozilla.org
https://mail.mozilla.org/listinfo/mobile-firefox-dev

Reply via email to