Внедрение 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