Index: docs/ios/opening_links.md |
diff --git a/docs/ios/opening_links.md b/docs/ios/opening_links.md |
new file mode 100644 |
index 0000000000000000000000000000000000000000..03ea68a3af74829b3bdbacfd883f00ca5da2c5c5 |
--- /dev/null |
+++ b/docs/ios/opening_links.md |
@@ -0,0 +1,95 @@ |
+# Opening links in Chrome for iOS</h1> |
+ |
+The easiest way to have your iOS app open links in Chrome is to use the |
+[OpenInChromeController](https://github.com/GoogleChrome/OpenInChrome) class. |
+This API is described here along with the URI schemes it supports. |
+ |
+## Using OpenInChromeController to open links |
+ |
+The **OpenInChromeController** class provides methods that |
+encapsulate the URI schemes and the scheme replacement process also described |
+in this document. Use this class to check if Chrome is installed or to specify |
+the URL to open. |
+ |
+### Methods |
+ |
+* `isChromeInstalled`: returns YES if Chrome is installed</li> |
+* `openInChrome`: opens a given URL in Chrome</li> |
+ |
+For example, use the OpenInChromeController class as follows: |
+ |
+``` |
+if ([openInController_ isChromeInstalled]) { |
+ [openInController_ openInChrome:urlToOpen]; |
+} |
+``` |
+ |
+## Downloading the class file |
+ |
+The OpenInChromeController class file is available |
+[here](https://github.com/GoogleChrome/OpenInChrome). Copy it into |
+your Xcode installation. |
+ |
+The rest of this document describes the underpinnings of this API. |
+ |
+## URI schemes |
+ |
+Chrome for iOS handles the following URI Schemes: |
+ |
+* `googlechrome` for http |
+* `googlechromes` for https |
+ |
+To check if Chrome is installed, an app can simply check if either of these URI schemes is available: |
+ |
+``` |
+[[UIApplication sharedApplication] canOpenURL: |
+ [NSURL URLWithString:@"googlechrome://"]]; |
+``` |
+ |
+This step is useful in case an app would like to change the UI depending |
+on if Chrome is installed or not. For instance the app could add an |
+option to open URLs in Chrome in a share menu or action sheet. |
+ |
+To actually open a URL in Chrome, the URI scheme provided in the URL |
+must be changed from `http` or `https` to the Google Chrome equivalent of |
+`googlechrome` or `googlechromes` respectively. |
+The following sample code opens a URL in Chrome: |
+ |
+``` |
+NSURL *inputURL = <the URL to open>; |
+NSString *scheme = inputURL.scheme; |
+ |
+// Replace the URL Scheme with the Chrome equivalent. |
+NSString *chromeScheme = nil; |
+if ([scheme isEqualToString:@"http"]) { |
+ chromeScheme = @"googlechrome"; |
+} else if ([scheme isEqualToString:@"https"]) { |
+ chromeScheme = @"googlechromes"; |
+} |
+ |
+// Proceed only if a valid Google Chrome URI Scheme is available. |
+if (chromeScheme) { |
+ NSString *absoluteString = [inputURL absoluteString]; |
+ NSRange rangeForScheme = [absoluteString rangeOfString:@":"]; |
+ NSString *urlNoScheme = |
+ [absoluteString substringFromIndex:rangeForScheme.location]; |
+ NSString *chromeURLString = |
+ [chromeScheme stringByAppendingString:urlNoScheme]; |
+ NSURL *chromeURL = [NSURL URLWithString:chromeURLString]; |
+ |
+ // Open the URL with Chrome. |
+ [[UIApplication sharedApplication] openURL:chromeURL]; |
+} |
+``` |
+ |
+If Chrome is installed, the above code converts the URI scheme found in |
+the URL to the Google Chrome equivalent. When Google Chrome opens, the |
+URL passed as a parameter will be opened in a new tab. |
+ |
+If Chrome is not installed the user can be prompted to download it from the App Store. |
+If the user agrees, the app can open the App Store download page using the following: |
+ |
+``` |
+[[UIApplication sharedApplication] openURL:[NSURL URLWithString: |
+ @"itms-apps://itunes.apple.com/us/app/chrome/id535886823"]]; |
+``` |