Selaa lähdekoodia

Add markdown file for using the Google sign-in button (#186)

Co-authored-by: Peter Andrews <petea@google.com>
mdmathias 3 vuotta sitten
vanhempi
sitoutus
fc99630134
1 muutettua tiedostoa jossa 55 lisäystä ja 0 poistoa
  1. 55 0
      README.md

+ 55 - 0
README.md

@@ -63,3 +63,58 @@ Google Sign-In also supports iOS apps that are built for macOS via
 [Mac Catalyst](https://developer.apple.com/mac-catalyst/).  In order for your Mac Catalyst app
 to store credientials via the Keychain on macOS, you will need to
 [sign your app](https://developer.apple.com/support/code-signing/).
+
+## Using the Google Sign-In Button
+
+There are several ways to add a 'Sign in with Google' button to your app, which
+path you choose will depend on your UI framework and target platform.
+
+### SwiftUI (iOS and macOS)
+
+Creating a 'Sign in with Google' button in SwiftUI can be as simple as this:
+
+```
+GoogleSignInButton {
+  GIDSignIn.sharedInstance.signIn(
+    with: configuration, 
+    presenting: yourViewController) { user, error in
+      // check `error`; do something with `user`
+  }
+}
+```
+
+This example takes advantage of the initializer's [default argument for the
+view model](GoogleSignInSwift/Sources/GoogleSignInButton.swift#L39).
+The default arguments for the view model will use the light scheme, the
+standard button style, and the normal button state.
+You can supply an instance of [`GoogleSignInButtonViewModel`](GoogleSignInSwift/Sources/GoogleSignInButtonViewModel.swift)
+with different values for these properties to customize the button.
+[This convenience initializer](GoogleSignInSwift/Sources/GoogleSignInButton.swift#L56) 
+provides parameters that you can use to set these values as needed.
+
+### UIKit (iOS)
+
+If you are not using SwiftUI to build your user interfaces, you can either
+create `GIDSignInButton` programmatically, or in a Xib/Storyboard. 
+If you are writing programmatic UI code, it will look something like this:
+
+`let button = GIDSignInButton(frame: CGRect(<YOUR_RECT>))`
+
+### AppKit (macOS)
+
+Given that `GIDSignInButton` is implemented as a subclass of `UIControl`, it
+will not be available on macOS. 
+You can instead use the SwiftUI Google sign-in button.
+Doing so will require that you wrap the SwiftUI button in a hosting view so
+that it will be available for use in AppKit.
+
+```
+let signInButton = GoogleSignInButton {
+  GIDSignIn.sharedInstance.signIn(
+    with: configuration, 
+    presenting: yourViewController) { user, error in
+      // check `error`; do something with `user`
+  }
+}
+let hostedButton = NSHostingView(rootView: signInButton)
+```