Внедрение Google+ с помощью React Native

Я хочу интегрировать G + Sign In (согласно https://developers.google.com/+/mobile/ios/sign-in) в приложении React Native. У меня есть Facebook Sign In работает через http://brentvatne.ca/facebook-login-with-react-native/, который работает отлично, но я не уверен, что делать на этом этапе G + docs:

В вашем файле контроллера .h, импортируйте GooglePlus/GooglePlus.h и объявите, что этот класс контроллера реализует протокол GPPSignInDelegate

Если кто-нибудь может предоставить некоторые образцы указателей/кодов?

Спасибо!

Ответ 1

EDIT 2017

В рамках среды Expo, которая теперь является стандартным для приложений с поддержкой реагирования, в Google Authentication имеется:

Экспо документация: https://docs.expo.io/versions/latest/sdk/google.html

Получить идентификаторы клиентов Android и iOS: https://console.developers.google.com/apis/credentials

import React from 'react'
import Expo from 'expo'
import Button from 'react-native-button'

class Login extends React.Component {
  signInWithGoogleAsync = async () => {
    try {
      const result = await Expo.Google.logInAsync({
        androidClientId: process.env.GOOGLE_ANDROID_CLIENT_ID,
        iosClientId: process.env.GOOGLE_IOS_CLIENT_ID,
        scopes: ['profile'],
      })

      if (result.type === 'success') {
        return result
      }
      return { cancelled: true }
    } catch (e) {
      return { error: e }
    }
  }


  onLoginPress = async () => {
    const result = await this.signInWithGoogleAsync()
    // if there is no result.error or result.cancelled, the user is logged in
    // do something with the result
  }

  render() {
    return (<Button onPress={this.onLoginPress}>Login</Button>)
  }
}

OLD ANSWER

В настоящее время существует библиотека для входа в Google+ для реагирования: https://github.com/devfd/react-native-google-signin

Ответ 2

Итак, это только частично связано с React Native, так как ваша основная проблема, похоже, заключается в написании стороны Obj-C знака G+. Для этого возьмите приложение iOS Quick Start для Google Plus:

https://developers.google.com/+/quickstart/ios

Следуйте инструкциям, чтобы открыть образец проекта, и вы увидите файл SignInViewController.m, который содержит следующую строку:

@interface SignInViewController () <GPPSignInDelegate>

Это похоже на то, что вам нужно.

Как только вы начнете работать, вам нужно будет реализовать соединение с React Native. Сообщение Facebook, на которое вы ссылаетесь, показывает, как это сделать, но официальная документация находится здесь:

http://facebook.github.io/react-native/docs/nativemodulesios.html#content

Я также написал сообщение, чтобы показать простейший Native Module, о котором я мог думать, который, как я думаю, довольно хорошо описывает общую концепцию:

http://colinramsay.co.uk/2015/03/27/react-native-simple-native-module.html