iCab Mobile is one of the oldest third-party browsers for iOS, and, even though Chrome is my go-to browser on the iPhone and iPad, I was intrigued by a feature introduced in the latest iCab update, version 7.1. In short, iCab now lets you launch other apps using URL schemes and multitouch gestures. I had to play around with it.
Not too dissimilar from Mr. Reader’s Services menu, iCab lets you build your own shortcuts to launch other apps from within the browser itself. Available in Tools > General Settings > Multitouch Gestures, the feature allows you to leverage third-party URL schemes and a new set of iCab parameters to send information such as the URL of the webpage you’re currently visiting to other apps installed on your device. After some experimentation, I have set up actions that let me send a webpage from iCab to Drafts with a two-finger swipe gesture, or a URL to Tweetbot with a three-finger swipe. It’s a powerful combination that should be familiar to those who use apps like Drafts or Launch Center Pro on a regular basis.
In the Multitouch Gestures setting panel, you’ll see a variety of gestures organized by number of fingers required to activate them. 1-finger gestures are reserved to system features, so you’ll only be able to customize those with two, three, or four fingers, plus a shake gesture. The finger-based gesture come with five different activation methods:
- Tap
- Swipe up
- Swipe down
- Swipe left
- Swipe right
The parameters (variables) supported by iCab let the app send the URL (or parts of it) of the webpage you’re currently viewing to other apps, and they are: %url%
, %path%
, %host%
, %query%
, and %specifier%
.
The action that you need to activate in the Multitouch Gestures is called “Open in App”, and it’s a simple text field where you can manually the type the URL scheme (combined with iCab parameters) that you want to launch. Unlike Mr. Reader or Drafts, there are no shortcuts to quickly enter parameters without typing them.
I have built three actions that are activated by gestures: one to send the current URL to Drafts, trigger an action, and return to iCab; one to send a URL to Tweetbot and go back to iCab; and the last one to open the current URL in Google Chrome.
The Drafts action uses the Drafts URL scheme and x-callback-url to return to iCab. The action that is triggered is one of my Evernote “append” actions, which makes for a nice way to perform a gesture in iCab, save a URL to Evernote, and get back to the browser in seconds.
drafts://x-callback-url/create?text=%url%&action=Stuff%20To%20Check%20Out&x-success=x-icabmobile://
The Tweetbot action is based on the Tweetbot URL scheme, which is very easy to read and understand. Note the custom callback (not based on x-callback-url) to return to iCab after a tweet is sent (or cancelled).
tweetbot://viticci/post?text=%url%&callback_url=icabmobile://
The last action is kind of particular in that it uses the host and path parameters to build the URL I want to open in Google Chrome. Because the Chrome URL scheme says that googlechrome://
acts as a replacement to http://
on iOS, we can’t use something like googlechrome://%url%
in iCab, as it would result in Chrome trying to open http://http://
– clearly that wouldn’t be right. Instead, by combining the host (domain) and path, we can construct a URL that can be sent to Chrome without issues. The action is activated by shaking the device, which will make you look silly when using the iPad, but that is still cool when you’re alone experimenting with URL schemes (or casually eating pasta).
googlechrome://%host%%path%
If you’re not happy with default multitouch gestures, you can go crazy by drawing your own gestures and give them a custom URL scheme. Draw Gestures are available in the Settings and they come with their own panel that you can resize and drag around on screen. Here’s what my Drafts draw gesture looks like:
There are some additions that I would like to see and that I’ve already requested to the (always helpful) iCab Mobile developer Alexander Clauss. The obvious one is a way to send a webpage’s title to other apps using %title%
– it would work similarly to JavaScript’s document.title
and I was surprised when I found out iCab 7.1 didn’t support it.
My second request is a way to encode parameters that are sent to other apps: for instance, I couldn’t build an action based on the Chrome callbacks (different from the “normal” URL scheme above) as they require the URL to be encoded – and iCab 7.1 doesn’t let me encode pieces of text. I imagine an encoding option could be inspired by Drafts and Mr. Reader, wrapping parameters inside {{double curly brackets}} to percent-encode text in the URL scheme.
Overall, I wouldn’t mind seeing a more “visual” way to build custom actions in iCab, perhaps with options to assign names to actions and a “palette” to display all available actions and launch them (like iCab’s existing Modules menu). iCab has always been a powerful third-party browser, and version 7.1 is a great playground for URL scheme fans. The app is only $1.99 on the App Store.